它們都有通用的語句格式和功能。
語句格式: [ 標(biāo)號: ] 操作符 短標(biāo)號
功能:如果條件滿足,則( ip )+位移量→ ip 。
1 .簡單條件轉(zhuǎn)移指令
條 件轉(zhuǎn)移指令 jcc 根據(jù)指定的條件確定程序是否發(fā)生轉(zhuǎn)移。如果滿足條件則程序轉(zhuǎn)移到目標(biāo)地址去執(zhí)行程序;不滿足條件,則程序?qū)㈨樞驁?zhí)行下一條指令。
其通用格式為:
jcc label , 條件滿足,發(fā)生轉(zhuǎn)移: ip ← ip+8 位位移量 ;否則,順序執(zhí)行 :ip ← ip+2
其中, label 表示目標(biāo)地址( 8 位位移量)。因為 jcc 指令為 2 個字節(jié),所以順序執(zhí)行就是指令偏移指針 ip 加 2 。條件轉(zhuǎn)移指令跳轉(zhuǎn)的目標(biāo)地址只能用前面介紹的段內(nèi)短距離跳轉(zhuǎn)(短轉(zhuǎn)移),即目標(biāo)地址只能是在同一段內(nèi),且在當(dāng)前 ip 地址 -128~+127 個單元的范圍之內(nèi)。這種尋址方式由于是相對于當(dāng)前 ip 的,所以被稱為相對尋址方式。條件轉(zhuǎn)移指令不影響標(biāo)志,但要利用標(biāo)志。條件轉(zhuǎn)移指令 jcc 中的 cc 表示利用標(biāo)志判斷的條件,共 16 種。
2 .無符號數(shù)條件轉(zhuǎn)移指令
【例】比較無符號數(shù)大小,將較大的數(shù)存放 ax 寄存器。
cmp ax , bx ;( ax )-( bx )
jnb next ;若 ax>=bx ,轉(zhuǎn)移到 next
xchg ax , bx ;若 ax<bx ,交換
next :…
3. 有符號數(shù)條件轉(zhuǎn)移指令
【例】比較有符號數(shù)大小,將較大的數(shù)存放在 ax 寄存器。
cmp ax , bx ;( ax )-( bx )
jnl next ;若 ax>=bx ,轉(zhuǎn)移到 next
xchg ax , bx ;若 ax<bx ,交換
next :…