跳轉指令有:JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP等等
JMP:無條件跳轉,相當於C語言的goto
JCC:根據指定的條件確定程序是否發生轉移,條件滿足,發生轉移,否則,順序執行下條指令
JECXZ:ECX為0則跳轉
用有16條指令,分兩類:
①單個標志狀態作為條件
5個狀態標志ZF、CF、SF、OF和PF的10種狀態
②兩數大小關系作為條件
㈠比較無符號整數的大小:
低於、不低於、低於等於、高於
㈡比較有符號整數大小:
小於、不小於、小於等於、大於
標志狀態作為條件:
②利用零位標志ZF的條件轉移指令:
JZ:運算結果為0 (ZF=1)
JNZ:結果不為0 (ZF=0)
JE:兩數相等 (ZF=1)
JNE:不相等 (ZF=0)
②利用進位標志CF的條件轉移指令:
JC:運算結果有進位/借位(CF=1)
JNC:運算結果沒有有進位/借位(CF=0)
③利用溢出標志OF的條件轉移指令:
JO:運算結果有溢出(OF=1)
JNO:結果沒有溢出(OF=0)
④利用符號標志SF的條件轉移指令:
JS:運算結果是負、最高位為1(SF=1)
JNS:結果是正、最高位為0(SF=0)
⑤利用奇偶標志PF的條件轉移指令:
JP:低8位結果中1的個數為偶或0(PF=1)
JPE:低8位結果中1的個數為偶或0(PF=1)
JNP:低8位結果中1的個數為奇(PF=0)
JPO:低8位結果中1的個數為奇(PF=0)
⑴兩個無符號整數大小關系的條件轉移指令:
無符號數大小用高(Above)、低(Below)助記符
JB:無符號低於
JNAE:無符號不高於等於
JNB:無符號不低於
JAE:無符號高於等於
JBE:無符號低於等於
JNA:無符號不高於
JNBE:無符號不低於等於
JA:無符號高於
即 JB = JNAE、 JNB = JAE、JBE = JNA 和 JNBE = JA
⑵兩個有符號整數大小關系的條件轉移指令:
有符號數大小用大(Greater)、小(Less)助記符
JL:小於
JNGE:不大於等於
JNL:不小於
JGE:大於等於
JLE:小於等於
JNG:不大於
JNLE:不小於等於
JG:大於
即JL = JNGE、JNL = JGE、JLE = JNG 和 JNLE = JG