匯編語言指令集學習條件轉移指令詳解
更新時間:2021年11月10日 16:28:58 作者:壹零捌
這篇文章主要為大家介紹了匯編語言指令集學習條件轉移的指令全面總結詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
條件轉移指令較多,容易混淆,在此記錄一下便于日后使用
1.根據(jù)單個條件標志的設置情況轉移
| 指令 | 英文 | 含義 | 格式 | 測試條件 |
|---|---|---|---|---|
| JZ/JE | jump if zero/equal | 結果為零/相等則轉移 | JZ/JE OPR | ZF=1 |
| JNZ/JNE | jump if not zero/equal | 結果不為零/不相等則轉移 | JNZ/JNE OPR | ZF=0 |
| JS | jump if sign | 結果為負則轉移 | JS OPR | SF=1 |
| JNS | jump if not sign | 結果為正則轉移 | JNS OPR | SF=0 |
| JO | jump if overflow | 溢出則轉移 | JO OPR | OF=1 |
| JNO | jump if not overflow | 不溢出則轉移 | JNO OPR | OF=0 |
| JP/JPE | jump if parity/parity even | 奇偶位為1則轉移 | JP/JPE OPR | PF=1 |
| JNP/JNPE | jump if not parity/parity even | 奇偶位為0則轉移 | JNP/JNPE OPR | PF=0 |
| JB/JNAE/JC | jump if below/not above、not equal/carry | 低于/不高于或不等于/進位為1則轉移 | JB/JNAE/JC OPR | CF=1 |
| JNB/JAE/JNC | jump if not below/ above、equal/not carry | 不低于/高于或等于/進位為零則轉移 | JNB/JAE/JNC OPR | CF=0 |
| 適用于測試某 | 一次運算的結果并根據(jù)其 | 不同特征產生程序分支 | 不同的處理的 | 情況 |
2. 比較兩個無符號數(shù),并根據(jù)比較的結果轉移
| 指令 | 英文 | 含義 | 格式 | 測試條件 | 等價于 |
|---|---|---|---|---|---|
| JB/JNAE/JC | jump if below/not above、not equal/carry | 低于/不高于或不等于/進位為1則轉移 | JB/JNAE/JC OPR | CF=1 | < |
| JNB/JAE/JNC | jump if not below/ above、equal/not carry | 不低于/高于或等于/進位為零則轉移 | JNB/JAE/JNC OPR | CF=0 | ≥ |
| JBE/JNA | jump if below/equal、not above | 低于/等于、不高于則轉移 | JBE/JNA OPR | CF并ZF=1 | ≤ |
| JNBE/JA | jump if not below/not equal、above | 不低于/不等于、高于則轉移 | JNBE/JA OPR | CF并ZF=0 | > |
3. 比較兩個帶符號數(shù),并根據(jù)比較的結果轉移
| 指令 | 英文 | 含義 | 格式 | 測試條件 | 等價于 |
|---|---|---|---|---|---|
| JL/JNGE | jump if less、not greater/equal | 小于、不大于/不等于則轉移 | JL/JNGE OPR | SF異或CF=1 | < |
| JNL/JGE | jump if not less、greater/equal | 不小于、大于/等于則轉移 | JNL/JGE OPR | SF異或CF=0 | ≥ |
| JLE/JNG | jump if less/equal、not greater | 小于/等于、不大于則轉移 | JLE/JNG OPR | (SF異或CF)并ZF=1 | ≤ |
| JNLE/JG | jump if not less/not equal、 greater | 不小于/不等于、大于則轉移 | JNLE/JG OPR | (SF異或CF)并ZF=0 | > |
4.測試CX或ECX的值為0則轉移指令
1. LCXZ (jump if CX register is zero) CX寄存器的內容為零則轉移
格式:JCXZ OPR
測試條件:(CX)=02. LECXZ (jump if ECX register is zero) ECX寄存器的內容為零則轉移
格式:JECXZ OPR (386及其后繼機型可用)
測試條件:(ECX)=0
以上就是匯編語言指令集學習條件轉移指令詳解的詳細內容,更多關于匯編語言條件轉移指令的資料請關注腳本之家其它相關文章!
相關文章
iOS匯編入門教程之在Xcode工程中嵌入?yún)R編代碼的方法
在Xcode中嵌入?yún)R編代碼主要依賴了C語言支持通過 __asm__ 引入?yún)R編代碼的功能。這篇文章主要介紹了iOS匯編入門教程之在Xcode工程中嵌入?yún)R編代碼的方法,需要的朋友可以參考下2020-02-02
用匯編語言實現(xiàn)從1加到100的方法(1+2+...+100)
這篇文章主要介紹了用匯編語言實現(xiàn)從1加到100的方法(1+2+...+100),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-01-01

