我正在跟踪一些x86代码的任务,我想知道“cmpl”究竟做了什么以及如何预测“jne”是否会被满足。x86 cmpl和jne
80484bf: 83 7d f0 07 cmpl $0x7,-0x10(%ebp)
80484c3: 75 16 jne 80484db
此外,这使用英特尔语法。
谢谢。
我正在跟踪一些x86代码的任务,我想知道“cmpl”究竟做了什么以及如何预测“jne”是否会被满足。x86 cmpl和jne
80484bf: 83 7d f0 07 cmpl $0x7,-0x10(%ebp)
80484c3: 75 16 jne 80484db
此外,这使用英特尔语法。
谢谢。
CMPL从$ 0x7的减去-0x10(%EBP),并修改标志:AF CF PF SF ZF的。
要summerize,代码等同于:
compare A to B
jump into 80484db if they are different.
非常感谢。所以如果-0x10(%ebp)减去$ 0x7不等于零,那么ZF被设置为0?或者是周围的其他方式? – Richarizard 2013-03-08 08:42:36
不客气。是的,如果-0x10(%ebp)减去$ 0x7不相等,则ZF被设置为0 – 2013-03-08 08:54:42
顺便说一句:这是AT&T语法。 – 2013-03-08 08:09:31