为什么在程序集中使用cmp $ 0xffffffffffffffff,%edi?

时间:2011-11-02 07:37:01

标签: assembly

在我学习汇编代码时,我看到了下面的代码段。我有点困惑。

mov $0x0, %ecx
lea  0x3(%rdi), %eax
cmp $0xffffffffffffffff, %edi    ; ???
cmovle %eax, %rdi

我有标记线???我不明白为什么在汇编代码中使用该行?

汇编:x86 64位

编辑:我的代码中没有任何比较。出于这个原因,我想知道为什么?

注意:我没有找到该问题的相关标题。如果找到,请通知我。所以,我可以改变

1 个答案:

答案 0 :(得分:3)

它将寄存器%edi与常量$0xffffffffffffffff进行比较,实际上是常量-1