功能:以標誌位的狀態或者以標誌位的邏輯運算結果作為轉移依據,如果滿足轉移條件,則轉到目標地址所指示的指令執行否則繼續執行下一條指令。必須指出,條件轉移指令轉移地址的偏移量限制在-128~+127位元組範圍內,採用相對轉移方式(相對轉移指令是指跳轉時以當前地址為基準加上相對偏移量進行跳轉,一般是在本地址段內跳轉。如果需要跳轉到較遠的地方如跳到另一個地址段,就需要加上跳轉的目標段地址)。
v從指令的轉移條件以及上條指令參加運算的運算元性質,可以將它們分成三類:
v(1)根據單個標誌位的狀態判斷轉移的指令(DEST為目的地址destination的縮寫)
指令 | 轉移條件 | 說明 |
JC DEST | CF=1 | 有進位/借位 |
JNC DEST | CF=0 | 無進位/借位 |
JE/JZ DEST | ZF=1 | 相等/等於零 |
JNE/JNZ DEST | ZF=0 | 不相等/不等於零 |
JS DEST | SF=1 | 是負數 |
JNS DEST | SF=0 | 是正數 |
JO DEST | OF=1 | 有溢出 |
JNO DEST | OF=0 | 無溢出 |
JP/JPE DEST | PF=1 | 有偶數個“1” |
JNP/JPO DEST | PF=0 | 有奇數個“1” |
v(2)根據兩個無符號數的比較結果判斷轉移的指令 v
指令 | 轉移條件 | 含義 | 英文表述 |
JA/JNBE DEST | CF=0 AND ZF=0 | 無符號數A>B | JMP above (not below or equal) |
JAE/JNB DEST | CF=0 | 無符號數A≥B | JMP above or equal (not below ) |
JB/JNAE DEST | CF=1 | 無符號數A<B | JMP blow (not above or equal) |
JBE/JNA DEST | CF=1 OR ZF=1 | 無符號數A≤B | JMP blow or equal (not above) |
v(3)根據兩個有符號數的比較結果判斷轉移的指令
指令 | 轉移條件 | 含義 | 英文表述 |
JG/JNLE DEST | SF=OF AND ZF=0 | 有符號數A>B | JMP greater (not less or equal) |
JGE/JNL DEST | SF=OF OR ZF=1 | 有符號數A≥B | JMP greater or equal (not less) |
JL/JNGE DEST | SF≠OF AND ZF=0 | 有符號數A<B | JMP less (not greater or equal) |
JLE/JNG DEST | SF≠OF OR ZF=1 | 有符號數A≤B | JMP less or equal (not greater) |