匯編語言指令集學(xué)習(xí)條件轉(zhuǎn)移指令詳解
條件轉(zhuǎn)移指令較多,容易混淆,在此記錄一下便于日后使用
1.根據(jù)單個條件標志的設(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é)果為負則轉(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 | 低于/不高于或不等于/進位為1則轉(zhuǎn)移 | JB/JNAE/JC OPR | CF=1 |
JNB/JAE/JNC | jump if not below/ above、equal/not carry | 不低于/高于或等于/進位為零則轉(zhuǎn)移 | JNB/JAE/JNC OPR | CF=0 |
適用于測試某 | 一次運算的結(jié)果并根據(jù)其 | 不同特征產(chǎn)生程序分支 | 不同的處理的 | 情況 |
2. 比較兩個無符號數(shù),并根據(jù)比較的結(jié)果轉(zhuǎn)移
指令 | 英文 | 含義 | 格式 | 測試條件 | 等價于 |
---|---|---|---|---|---|
JB/JNAE/JC | jump if below/not above、not equal/carry | 低于/不高于或不等于/進位為1則轉(zhuǎn)移 | JB/JNAE/JC OPR | CF=1 | < |
JNB/JAE/JNC | jump if not below/ above、equal/not carry | 不低于/高于或等于/進位為零則轉(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. 比較兩個帶符號數(shù),并根據(jù)比較的結(jié)果轉(zhuǎn)移
指令 | 英文 | 含義 | 格式 | 測試條件 | 等價于 |
---|---|---|---|---|---|
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及其后繼機型可用)
測試條件:(ECX)=0
以上就是匯編語言指令集學(xué)習(xí)條件轉(zhuǎn)移指令詳解的詳細內(nèi)容,更多關(guān)于匯編語言條件轉(zhuǎn)移指令的資料請關(guān)注腳本之家其它相關(guān)文章!