跳轉指令


跳轉指令有:JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP等等

JMP:無條件跳轉,相當於C語言的goto

JCC:根據指定的條件確定程序是否發生轉移,條件滿足,發生轉移,否則,順序執行下條指令

JECXZ:ECX為0則跳轉

用有16條指令,分兩類:

①單個標志狀態作為條件

  5個狀態標志ZF、CF、SF、OFPF的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM