对于内联 asm 代码,我__asm
用于 vc++ 编译器和__asm__()
/或asm()
在 linux 下为 gcc 构造。(相应的 intel/at&t 语法)
有没有办法以通用的方式在 C 中为它们声明内联汇编(x86)?
PS 用于合并两者的自动化工具也是可以接受的。
对于内联 asm 代码,我__asm
用于 vc++ 编译器和__asm__()
/或asm()
在 linux 下为 gcc 构造。(相应的 intel/at&t 语法)
有没有办法以通用的方式在 C 中为它们声明内联汇编(x86)?
PS 用于合并两者的自动化工具也是可以接受的。
将程序集放入宏中并使用预处理器生成正确的代码。
#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;
}
作为备选...
我认为您使用 Visual C 是因为它是 Windows 平台?
为什么不在 Windows 和 Linux 平台上使用 gcc?
然后它是相同的源和相同的汇编格式!