【发布时间】:2011-04-25 09:44:00
【问题描述】:
我在尝试在 FreeBSD 64 位中运行的 C 程序中遇到了一段汇编代码。
void *curbrk;
__asm__ __volatile__(
"movl .curbrk, %%eax;"
"movl %%eax, %0"
: "=r" (curbrk)
:: "%eax"
);
我收到类似“mov 缺少后缀或操作数”的错误。(上面的代码遵循 AT&T 语法)什么决定了我应该用于代码的语法 - 编译器(gcc 遵循 AT&T 语法)或处理器(我是在英特尔处理器上工作)。问题是因为代码是 AT&T 语法还是我还缺少什么?
【问题讨论】:
标签: c gcc compiler-construction assembly