【发布时间】:2015-07-23 21:30:34
【问题描述】:
我收到以下错误:
汇编程序消息:
错误:“cmp”的操作数类型不匹配
我的代码中唯一的 cmp 是:
"cmpl %eax, $15\n\t"
我不明白这有什么问题 - 我有一个寄存器和一个立即数,应该隐式符号扩展为 32 位。
【问题讨论】:
-
当使用 att 语法(gcc 的默认)时,常量需要是第一个参数:
"cmpl $15, %eax\n\t"。 Intel 语法将常量放在第二个参数中。如果您的所有 asm 都是 intel 格式,请使用 -masm=intel。 -
啊,谢谢。即使我不明白这是为什么。
标签: gcc x86 inline-assembly att