匯編語言轉移指令規則匯總


摘要:雖然jmp指令提供了控制轉移,但是它不允許進行任何復雜的判斷。80x86條件跳轉指令提供了這種判斷。條件跳轉指令是創建循環和實現其他條件執行語句,如if…endif的基本要素。
 
條件跳轉指令檢查一個或多個標志位,判斷它們是否匹配某個特殊條件(就像setcc指令):如果標志匹配成功,該指令就將控制轉移到目標位置;如果匹配失敗,CPU忽略該條件跳轉指令而繼續執行下一條指令 。一些條件跳轉指令只是簡單測試符號位(sign)、進位位(carry)、溢出位(overflow)、零標志(zero)位的設置。例如,在執行一條sh1指令后,您需要測試進位標志,來判斷sh1是否從操作數的高地址位移出一位。類似地,也可以在一條test指令后測試零標志位,來判斷指定的位是否為1。大多數情況,在cmp指令之后執行條件跳轉指令。cmp指令設置標志位,以便判斷小於、大於、等於等情況。
 
測試標志位的JCC指令
指 令
描 述
條 件
別 名
相 反 指 令
JC
如果進位位被置位則跳轉
進位標志=1
JB,JNAE
JNC
JNC
如果進位位沒有置位則跳轉
進位標志=0
JNB,JAE
JC
JZ
如果0標志被置位則跳轉
0標志=1
JE
JNZ
JNZ
如果0標志沒有置位則跳轉
0標志=0
JNE
JZ
(續表)
指 令
描 述
條 件
別 名
相反指令
JS
如果符號位被置位則跳轉
符號標志=1
 
JNS
JNS
如果符號位沒有被置位則跳轉
符號標志=0
 
JS
JO
如果溢出標志置位則跳轉
溢出標志=1
 
JNO
JNO
如果溢出標志沒有置位則跳轉
溢出標志=0
JO
 
JP
如果奇偶校驗位被置位則跳轉
奇偶校驗標志=1
JPE
JNP
JPE
如果奇偶校驗位為偶校驗則跳轉
奇偶校驗標志=1
JP
JPO
JNP
如果奇偶校驗位沒有被置位則跳轉
奇偶校驗標志=0
JPO
JP
JPO
如果奇偶校驗位為奇校驗則跳轉
奇偶校驗標志=0
JNP
JPE
使用無符號數比較的JCC指令
指 令
描 述
條 件
別 名
相反指令
JA
如果超過(>)則跳轉
進位標志=0,0標志=0
JNBE
JNA
JNBE
如果不低於或等於(不 <=)則跳轉
進位標志=0,0標志=0
JA
JBE
JAE
如果超過或等於(>=)則跳轉
進位標志=0
JNC,JNB
JNAE
JNB
如果不低於則跳轉(不 <)
進位標志=0
JNC,JAE
JB
JB
如果低於(<)則跳轉
進位標志=1
JC,JNAE
JNB
JNAE
如果不超過或等於(不>=)則跳轉
進位標志=1
JC,JB
JAE
JBE
如果低於或等於(<=)則跳轉
進位標志=1或0標志=1
JNA
JNBE
JNA
如果不超過(不>)則跳轉
進位標志=1或0標志=1
JBE
JA
JE
如果相等(=)則跳轉
0標志=1
JZ
JNE
JNE
如果不相等(<>)則跳轉
0標志=0
JNZ
JE
使用有符號數比較的JCC指令
指 令
描 述
條 件
別 名
相反指令
JG
如果大於(>)則跳轉
符號標志=溢出標志或0標志=0
JNLE
JNG
JNLE
如果小於或等於(<=)則跳轉
符號標志=溢出標志或0標志=0
JG
JLE
JGE
如果大於或等於(>=)則跳轉
符號標志=溢出標志
JNL
JGE
JNL
如果不小於(不<)則跳轉
符號標志=溢出標志
JGE
JL
JL
如果小於(<)則跳轉
符號標志<>溢出標志
JNGE
JNL
JNGE
如果大於或等於(>=)跳轉
符號標志<>溢出標志
JL
JGE
JLE
如果小於或等於(<=)跳轉
符號標志<>溢出標志或0標志=1
JNG
JNLE
JNG
如果不大於(不>)則跳轉
符號標志<>溢出標志或0標志=1
JLE
JG
JE
如果等於(=)則跳轉
0標志=1
JZ
JNE
JNE
如果不等於(<>)則跳轉
0標志=0
JNZ
JE
loop跳轉指令:
注意這下面三行代碼:
        
  1.      MOV     CX,3  
  2.      NEXT: MOVSB  
  3.       LOOP    NEXT  
     其中,loop的跳轉機制:通過對cx進行自動遞減來實現跳轉
 
參考:http://blog.csdn.net/trochiluses/article/details/19355425
 
Delphi匯編跳轉
參考:http://www.cnblogs.com/huangjacky/archive/2010/01/20/1652495.html


免責聲明!

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



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