【发布时间】:2015-03-24 00:06:15
【问题描述】:
所以我有这个内联汇编代码和我的 C 代码,我想使用 intel 语法来调用 asm(),但是我需要切换回 ATT 语法,否则它会给出一长串错误。
asm(".intel_syntax prefix");
asm volatile (
"add %0, $1 \n\t"
: "=r" (dst)
: "r" (src));
asm(".att_syntax prefix");
现在它给出了以下错误
/tmp/ccDNa2Wk.s: Assembler messages:
/tmp/ccDNa2Wk.s:180: Error: no such instruction: `movl -16(%ebp),%eax'
/tmp/ccDNa2Wk.s:187: Error: no such instruction: `movl %eax,-12(%ebp)'
我不明白如何修复错误,我的代码的任何部分都没有调用 movl。
【问题讨论】:
-
用 AT&T 语法重写那一行内联汇编不是更容易吗?