在x86汇编代码中,JE
和JNE
是否与JZ
和JNZ
完全相同?
最佳答案
JE
和JZ
只是同一事物的不同名称:ZF
(“零”标志)等于1时的条件跳转。
(类似地,JNE
和JNZ
只是条件跳转的不同名称
当ZF
等于0时。)
您可以互换使用它们,但应根据需要使用它们
你在做什么:
明确测试时,
JZ
/ JNZ
更合适对于等于零的东西:
dec ecx
jz counter_is_now_zero
JE
指令之后,JNE
和CMP
更合适:cmp edx, 42
je the_answer_is_42
(
CMP
指令执行减法运算,并在保留标志的同时将结果的值丢弃;这就是为什么当操作数相等时获得ZF=1
的原因和
ZF=0
(如果不是)。