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 目标地址 低于、或不高于或等于,转移
注意点:在使用无符号数条件跳转指令时,必须明确当处理的数据是无符号数,否则将得不到正确答案。