对于内联asm代码,我使用__asm
用于vc ++编译器,__asm__()
或asm()
构造用于linux下的gcc。 (相应的intel / at& t语法)
有没有办法以通用的方式在C中为它们声明内联汇编(x86)?
P.S。同时包含两者的自动化工具也是可以接受的。
答案 0 :(得分:5)
将程序集放在宏中,然后使用预处理器生成正确的代码。
#ifdef GCC
#define MY_ASM_CODE __asm() { blah blah blah}
#endif
#ifdef MSVC
#define MY_ASM_CODE __asm { blah blah blah }
#endif
int main(void)
{
MY_ASM_CODE;
return 0;
}
答案 1 :(得分:0)
作为另类......
我认为你使用Visual C因为它是一个Windows平台?
为什么不在Windows和Linux平台上使用gcc?
然后它是相同的源和相同的汇编格式!