在学习汇编代码时,我看到了下面的代码段。我有点困惑。
mov $0x0, %ecx
lea 0x3(%rdi), %eax
cmp $0xffffffffffffffff, %edi ; ???
cmovle %eax, %rdi
我已经标线了???。我不明白为什么在汇编代码中使用该行?
程序集:x86 64 位
编辑:我的代码中没有任何比较。出于这个原因,我想知道为什么?
注意:我没有找到该问题的相关标题。如果你找到了,请帮助并通知我。所以,我可以改变
最佳答案
它将寄存器 %edi
与常量 $0xffffffffffffffff
进行比较,后者实际上是常量 -1
关于assembly - 为什么 cmp $0xffffffffffffffff, %edi 用于汇编?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7977061/