JZ/JE
指令格式 轉移條件 說明
JZ/JE 標號 ZF=1 等于0或相等轉移
code segment
assume cs:codemov ax,2mov bx,2cmp ax,bxje ok ;如果ax=bx 進行轉移(其實是檢測ZF的值進行轉移操作)
;根據ZF=1 得出ax=bx ,所以才有ax=bx 相等則轉移
iout: mov ax,4c00Hint 21H
ok: add ax,bxjmp iout
code ends
end
U反編譯
-u
0C9A:0000 B80200 MOV AX,0002
0C9A:0003 BB0200 MOV BX,0002
0C9A:0006 3BC3 CMP AX,BX
0C9A:0008 7405 JZ 000F ;把編號編譯成了目的地址
0C9A:000A B8004C MOV AX,4C00
0C9A:000D CD21 INT 21
0C9A:000F 03C3 ADD AX,BX
0C9A:0011 EBF7 JMP 000A
T單步執行
AX=0002 BX=0002 CX=0013 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C8A ES=0C8A SS=0C9A CS=0C9A IP=0006 NV UP EI PL NZ NA PO NC
0C9A:0006 3BC3 CMP AX,BX ;CMP指令進行兩數的比較
-t ;如果相等則用je進行轉移AX=0002 BX=0002 CX=0013 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C8A ES=0C8A SS=0C9A CS=0C9A IP=0008 NV UP EI PL ZR NA PE NC
0C9A:0008 7405 JZ 000F ;ZR(ZF=1) jz根據結果轉移
-t AX=0002 BX=0002 CX=0013 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0C8A ES=0C8A SS=0C9A CS=0C9A IP=000F NV UP EI PL ZR NA PE NC
0C9A:000F 03C3 ADD AX,BX ;轉移到了目標地址指向的指令
je/jz根據CMP比較結果進行轉移,ZF=1 就會發生轉移