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

