就业数据资源平台
当前位置:首页 > PC技术
全国计算机考试三级PC技术第二章(17)

控制转移指令


1)无条件转移指令


这种类型的指令无条件转移到目标地址执行程序。按不同的寻址方法可以分为以下6种指令形式。


JMP SHORT DST    ;段内直接短转移,-128~+127B范围相对转移,DST为标号


JMP NEAR PTR DST ;段内直接近转移,±32 KB范围相对转移,DST为标号


JMP DST           ;段内直接转移,64 KB范围绝对转移,DST为寄存器


JMP WORD PTR DST ;段内间接转移,64KB范围绝对转移,DST为存储单元


JMP FAR PTR DST    ;段间直接转移,段外绝对转移,DST为标号


JMP DWORD PTR DST ;段间间接转移,段外绝对转移,DST为存储单元


2)条件转移指令


这种类型的指令是以标志位的状态或者以标志位的逻辑运算结果作为转移依据,这类指令都是采用段内直接短转移,转移地址的偏移量限制在-128~+127B范围内。


3)条件设置指令


指令格式如下:


SETcc DST


4)条件传送指令


指令格式如下:


CMOVcc REG,DST


5)循环指令


循环指令用于控制程序的重复执行,它们以CX/ECX寄存器为计数器,在其中预置程序的循环次数,并根据对CX/ECX内容的测试结果来决定程序是循环至目标地址,还是顺序执行循环指令的下一条指令。


按控制循环的方式,循环指令有以下4种形式。


LOOP DST          ;(CX/ECX)-1≠0,则循环


LOOPZ/LOOPE DST  ;(CX/ECX)-1≠0且ZF=1,则循环


LOOPNZ/LOOPNE DST;(CX/ECX)-1≠0且ZF=0,则循环


JCXZ/JECXZ         ;(CX/ECX)=0,则转移


6)调用和返回指令


(1)CALL调用指令


下面是CALL指令的几种基本类型:


CALL NEAR PTR DST     ;段内直接调用(NEAR PTR可省略),DST为子程序入口地址


CALL DST               ;段内间接调用,DST为寄存器


CALL WORD PTR DST    ;段内间接调用,DST为存储单元


CALL FAR PTR DST       ;段间直接调用,DST为子程序入口地址


CALL DWORD PTR DST   ;段间间接调用,DST为存储单元


(2)RET返回指令


该指令通常放在子程序的末尾,使子程序执行完毕以后能够返回主程序继续执行原来的程序。执行该指令后应该把返回地址出栈送IP寄存器(段内或段间调用时)和CS寄存器(仅段间调用)。


7)中断指令


80x86微处理器提供了以下3条中断指令。


INT TYPE      ;TYPE为中断类型号,取值范围为0~255


INTO          ;溢出中断指令,若OF=1,产生类型号为4的中断服务


IRET/IRETD    ;中断返回指令,偏移地址和段地址送CS:IP/EIP,恢复FLAGS/EFLAGS

就业数据资源平台