1.無條件跳轉指令
指令格式;JMP 目標地址
功能:JMP可以使程序無條件地跳轉到程序存儲器中某目標地址
注意點:
1)指令目標地址若在JMP指令所在的代碼段內,屬段內跳轉,指令只修改IP內容。指令目標地址若在JMP指令所在的代碼段外,屬段間跳轉,CS及IP均要修改。
2)無條件跳轉指令的執行結果不影響標志位。
條件跳轉指令,條件跳轉指令可分為三類:簡單條件跳轉指令、帶符號數條件跳轉指令和無符號數條件跳轉指令
(1)簡單條件跳轉指令
JC???? ?目的地址???? 進位標志位CF=1,轉移
JNC?? 目的地址???? 進位標志位CF=0,轉移
JZ??? ??目的地址???? 零標志位ZF=1,轉移
JNZ??? 目的地址??? 零標志位ZF=0,轉移
JS??? ? 目的地址??? 符號標志SF=1,轉移
JNS?? 目的地址??? 符號標志SF=0,轉移
JO???? 目的地址??? 溢出標志OF=1,轉移
JNO?? 目的地址??? 溢出標志OF=0,轉移
JP????? 目的地址??? 奇偶標志PF=1,轉移
JNP??? 目的地址??? 奇偶標志PF=0,轉移
JCXZ? 目的地址??? CX=0,轉移
注意點:
1)條件轉移指令只能轉移到離本指令-128~+127字節范圍內,是一種相對轉移形式,當要往較遠單元地址條件轉移時,可以在本指令-128~+127字節范圍內安排一條無條件轉移指令作為中轉指令即可
2)在使用簡單條件跳轉指令時,必須明確相應標志位的變化。
(2)帶符號數條件跳轉指令
指令格式:
JG/JNLE??? 目標地址????? 大于、或不小于且不等于,轉移
JGE/JNL??? 目標地址????? 大于或等于、或不小于,轉移
JL/JNGE??? 目標地址????? 小于或不大于且不等于,轉移
JLE/JNG??? 目標地址????? 小于或等于、或不大于
注意點:在使用帶符號數條件跳轉指令時,必須明確當處理的數據是帶符號數,否則將得不到正確答案
(3)無符號數條件跳轉指令
指令格式:
JB/JNAE???? 目標地址?????? 低于、或不高于且不等于,轉移
JNB/JAE???? 目標地址??? ?? 不低于、或高于或等于,轉移
JA/JNBE?????目標地址?????? 不低于、或高于且不等于,轉移
JNA/JBE??? ?目標地址?????? 低于、或不高于或等于,轉移
注意點:在使用無符號數條件跳轉指令時,必須明確當處理的數據是無符號數,否則將得不到正確答案。
?