x86 cmpl和jne

时间:2013-03-08 07:34:00

标签: x86 intel-syntax

我正在跟踪一些x86代码进行分配,我想知道究竟“cmpl”究竟是什么以及如何预测“jne”是否会被满足。

80484bf:    83 7d f0 07             cmpl   $0x7,-0x10(%ebp)
80484c3:    75 16                   jne    80484db

此外,它使用Intel语法。

感谢。

1 个答案:

答案 0 :(得分:9)

cmpl 从$ 0x7中减去-0x10(%ebp)并修改标志: AF CF OF PF SF ZF

  1. if -0x10(%ebp)是你的函数参数之一,等于0x7,然后设置标志 ZF
  2. jne 80484db 表示如果两个比较数字不同(ZF = 0),请跳至 80484db
  3. 总结一下,您的代码相当于:

    compare A to B
    jump into 80484db if they are different.