急!学习汇编语言时,书上出现了这样两条条件转移指令,我觉得他们互相矛盾,大家帮忙看下!谢谢
JE 地址标号;相等转移,ZF=1转至地址标号处执行
JNE 地址标号;不相等转移,ZF=0,转至地址标号处执行
JZ 地址标号;为零转移,ZF=1转至地址标号处执行
JNZ 地址标号;不为零转移,ZF=0转至地址标号处执行
ZF=1时,两个比较的数相等
ZF=0时,两个比较的数不相等
零标志位(ZF)
当算术运算的结果为0时,零标志位ZF将被置1;如果结果不为0,ZF则被清零。在IA-32汇编语言代码中,在好多种情况下会使用ZF标志位,但可能最常见情况就是比较两个操作数并测试它们是否相等。比如用CMP指令将一个操作数减去另一个操作数,如果减法运算的伪结果(pseudoresult,表示此结果并不写入目的操作数中)为0就将ZF标志位置1,表明两个操作数相等。如果两个操作数不相等,ZF被清零。
JE指令(相等时转移)
JZ指令(等于0时转移)
这是当ZF=1时转移到目标地址的条件转移指令的两种助记符。这条指令既适用于判断无符号数的相等,又适用于判断带符号数的相等。
JNE指令(不相等转移)
JNZ指令(不等于0转移)
这是当ZF=0时能转移到目标地址的条件转移指令的两种助记符。这条指令也是既适用于判断无符号数,又适用于判断带符号数。
本篇文章来源于 黑客基地-全球最大的中文黑客站 原文链接:/tech/2009-06-11/53188.html