第3章8086指令系统 数据传送指令 算术运算指令 逻辑运算指令 串操作指令 控制传送指令 CPU控制指令
第3章 8086指令系统 • 数据传送指令 • 算术运算指令 • 逻辑运算指令 • 串操作指令 • 控制传送指令 • CPU控制指令
3.4.5控制传送指令(P104) 调用(Ca)、转移(Jump)、返回( Return) 条件传送 重复控制 中断指令
3.4.5 控制传送指令(P104 ) • 调用(Call)、转移(Jump)、返回(Return) • 条件传送 • 重复控制 • 中断指令
3.4.5控制传送指令(P104) ■1、调用和返回指令 编程时往往将程序中常用到的具有相同功能的 部分独立出来,设计为一个子程序(或叫过程)。 需要时进行调用,子程序结束后,再返回原来调 用的地方。 方法的优点是:源程序长度缩短,有利于模块 化设计,使程序的编制、阅读和修改都比较方便。 8086/8088CPU为实现这一功能提供下面两条 指令 ◆调用指令CALL ◆返回指令RET
3.4.5 控制传送指令(P104 ) 1、调用和返回指令 编程时往往将程序中常用到的具有相同功能的 部分独立出来,设计为一个子程序(或叫过程) 。 需要时进行调用,子程序结束后,再返回原来调 用的地方。 方法的优点是:源程序长度缩短,有利于模块 化设计,使程序的编制、阅读和修改都比较方便。 8086/8088 C P U为实现这一功能提供下 面 两 条 指令: ◆调用指令 CALL ◆返回指令 RET
3.4.5控制传送指令(P105) (1)调用指令CALL 由于子程可能与主程序同在一个段内,也可能 不同在一个段内,与JMP指令类似,调用指令也分 如下四种。 ■①段内直接调用 例:CAL0120H;调用地址由指令给出 执行的操作为: (SP)-1,(P)-2)←(IP);IP压栈 (SP)←(SP)-2 ;修改SP (IP)←(IP)+偏移量
3.4.5 控制传送指令(P105 ) (1)调用指令CALL 由于子程可能与主程序同在一个段内,也可能 不同在一个段内,与J M P指令类似,调用指令也分 如下四种。 ①段内直接调用 例:CALL 0120H ;调用地址由指令给出. 执行的操作为: ((SP)-1,(SP)-2)←(IP) ;IP压栈 (SP)←(SP)-2 ;修改SP (IP)←(IP)+偏移量
3.4.5控制传送指令 操作的第3项解释为:调用的地址(即IP值)是 IP的当前值与指令中给定的位移量之和。给定的位 移量由汇编算出来,方法为: 例:CS:0100M0VAL,38H2字节 CS:0102CALL0120H3字节 CS:0105 则位移量:0120-0105H=001BH 于是CALL0120H的机器码为E81B00 参考P?段内直接调用 于是0105+001B=0120H
3.4.5 控制传送指令 操作的第3项解释为:调用的地址(即IP值) 是 I P的当前值与指令中给定的位移量之和。给定的位 移量由汇编算出来,方法为: 例:CS:0100 MOV AL,38H 2字节 CS:0102 CALL 0120H 3字节 CS:0105 则位移量:0120-0105H=001BH 于是CALL 0120H的机器码为E8 1B 00 参考P? 段内直接调用 于是0105+001B=0120H