控制转移类指令包括以下几种:
JMP:程序无条件地跳转到目的单元,支持多种跳转格式如短转移、近转移、直接转移、寄存器间接转移和间接跳转。
LJMP:长转移指令,使程序按指定地址进行无条件转移。
JZ/JNZ:结果为零/不为零则转移。
JS/JNS:结果为负/为正则转移。
JO/JNO:溢出/不溢出则转移。
JP/JNP:奇偶位为1/为0则转移。
JB/JNB:低于/不低于则转移。
JBE/JNBE:低于等于/高于则转移。
JL/JNL:小于/不小于则转移。
JLE/JNLE:小于等于/大于则转移。
JCXZ:CX为零则转移。
LOOP:循环,条件为CX不为零时循环。
LOOPZ/LOOPE:循环,条件为CX不为零且结果为0时循环。
LOOPNZ/LOOPNE:循环,条件为CX不为零且结果不为0时循环。
CALL:调用子程序,将子程序入口地址压入堆栈并跳转到子程序地址。
RET:从子程序返回,恢复调用前的程序执行位置。
INT:中断,触发一个中断服务例程。
INTO:溢出时中断。
IRET:中断返回,从中断服务例程返回。
这些指令通过改变程序计数器(PC)或指令指针(IP)的值,控制程序的执行流程,从而实现分支、循环、过程调用/返回、中断调用/返回等程序结构。合理使用这些指令可以提高程序的执行效率和可维护性。