我收到以下错误:
汇编程序消息: 错误:“cmp”的操作数类型不匹配
我的代码中唯一的cmp是:
"cmpl %eax, $15\n\t"
我没有弄到底有什么问题 - 我有一个寄存器和一个立即值,它应该隐式地扩展到32位。
我有同样的问题,但在我的情况下错误是
cmp $0xFFFFFFFFFFFFFFFF, %rdx
解决方案就是这样做
movq $0xFFFFFFFFFFFFFFFF, %rcx
先,然后
cmp %rcx, %rdx
(afaik,对于更大的数字,cmp需要两个寄存器,而不是const和寄存器)