在x86汇编代码中,JEJNE是否与JZJNZ完全相同?

最佳答案

JEJZ只是同一事物的不同名称:ZF(“零”标志)等于1时的条件跳转。

(类似地,JNEJNZ只是条件跳转的不同名称
ZF等于0时。)

您可以互换使用它们,但应根据需要使用它们
你在做什么:

明确测试时,

  • JZ / JNZ更合适
    对于等于零的东西:
    dec  ecx
    jz   counter_is_now_zero
    
  • JE指令之后,
  • JNECMP更合适:
    cmp  edx, 42
    je   the_answer_is_42
    

    (CMP指令执行减法运算,并在保留标志的同时将结果的值丢弃;这就是为什么当操作数相等时获得ZF=1的原因
    ZF=0(如果不是)。
  • 08-16 10:22