匯編語言指令集之條件轉(zhuǎn)移指令實(shí)現(xià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è)無符號數(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è)帶符號數(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)=0
2. LECXZ (jump if ECX register is zero) ECX寄存器的內(nèi)容為零則轉(zhuǎn)移
格式:JECXZ OPR (386及其后繼機(jī)型可用)
測試條件:(ECX)=0
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
匯編語言 輸入10個(gè)數(shù)排序并輸出的實(shí)現(xiàn)
這篇文章主要介紹了匯編語言 輸入10個(gè)數(shù)排序并輸出的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01UEFI開發(fā)實(shí)戰(zhàn)SlimBootloader中調(diào)用FSP
這篇文章主要為大家介紹了UEFI開發(fā)實(shí)戰(zhàn)SlimBootloader中調(diào)用FSP基礎(chǔ)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06詳解匯編語言中中括號[]作用及l(fā)ea和mov指令的區(qū)別
這篇文章主要介紹了匯編語言中中括號[]作用及l(fā)ea和mov指令的區(qū)別,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01