我正在使用 GCC 开发自己的内核,当从 asm 代码调用 C 函数时,我必须add esp,xx
自己做。经过一番搜索,我发现这stdcall
是微软的发明,不能在 GCC 中使用。有什么方便的方法来完成这项工作吗?
问问题
8667 次
1 回答
10
linux中的stdcall有什么等价的吗?
我在linux环境中的内核
等等,这是你自己的内核,还是 Linux 内核?因为如果它是你自己的内核,它就不再是 Linux。
如果你在 Linux 上工作,你会想要坚持常规的调用约定并编写你的程序集来匹配。
如果你在自己的内核上工作,你可以做任何你想做的事情。GCC 和 Clang 都支持
stdcall
ix86 处理器上的调用约定,例如,#define stdcall __attribute__((stdcall))
请参阅:函数属性(GCC 手册)
于 2012-10-27T00:09:21.040 回答