首页 > 解决方案 > 一个特定调用的 c++ 堆栈对齐

问题描述

func()在程序集中实现了一个全局函数,在 C++ 源文件中声明为外部函数:

extern "C" void func(char*);

func()要求堆栈以 32 字节对齐。现在,我可以:

  1. 强制我的所有调用以 32 字节对齐,将适当的标志传递给编译器
  2. 在汇编源代码中对齐堆栈func()
  3. 以某种方式强制调用以func()32 个字节对齐,而不是默认的 16 个字节。

我不想做1。所以我的问题是,怎么做3?也许最有效的方法是强制对齐,如 2。

标签: c++assemblymemory-alignmentstack-pointer

解决方案


推荐阅读