0

对于内联 asm 代码,我__asm用于 vc++ 编译器和__asm__()/或asm()在 linux 下为 gcc 构造。(相应的 intel/at&t 语法)

有没有办法以通用的方式在 C 中为它们声明内联汇编(x86)?

PS 用于合并两者的自动化工具也是可以接受的。

4

2 回答 2

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;
}
于 2012-09-03T13:28:49.643 回答
0

作为备选...

我认为您使用 Visual C 是因为它是 Windows 平台?

为什么不在 Windows 和 Linux 平台上使用 gcc?

然后它是相同的源和相同的汇编格式!

于 2012-09-05T07:52:54.683 回答