1

愚蠢的问题,但我只是在 gcc 中找不到必要的标志。基本上,我的 C 程序中有以下内联汇编代码

__asm__ __volatile__ ("lea ebx, [timings] \n\t");

编译时,我收到一条错误消息,上面写着:Error: invalid char '[' beginning operand 2[timings]'`

现在我记得很久以前我使用某种标志告诉编译器它是 x86 内联汇编。但是在网上找不到,也许有人可以告诉我我必须使用哪个标志?

太感谢了!

4

2 回答 2

6

您不能使用 GCC 以这种方式指定变量。有关如何使用内联汇编程序的详细说明,请参阅此文档。另外,请记住 GCC 使用 AT&T 语法,而不是 Intel 语法,因此您必须将目的地放在右侧。

于 2009-06-23T16:45:08.007 回答
-2

尝试__asm__改用。在这里查看更多信息。

另外,尝试从汇编代码中删除 \n\t。

于 2009-06-23T16:40:40.690 回答