文档详情

微机原理及应用CH3 8086的寻址方式和指令系统.ppt

发布:2017-06-03约2.19万字共121页下载文档
文本预览下载声明
(2)简单条件转移指令 假设在条件转移指令之前使用了比较指令,比较了两个无符号数M、N,指令进行的操作是M-N,转移指令如下表3.3所示: (3)无符号数条件转移指令 假设在条件转移指令之前使用了比较指令,比较了两个带符号数M、N,指令进行的操作是M-N,转移指令如下表3.4所示: (4)带符号数条件转移指令 3.子程序调用指令 汇编语言中的子程序相当于高级语言中的过程。当主程序中需要完成某一个独立功能时,则可以调用能够完成该独立功能的子程序,8086提供了以下指令: (1)CALL调用指令 CALL调用指令具体可以分成4中情况进行调用:段内直接调用、段间直接调用、段内间接调用、段间间接调用 执行的操作: (SP)←(SP)-2 ((SP)+1,(SP))←(IP) (IP)←(IP)+D16 ① 段内直接调用 格式:CALL OPR ② 段内间接调用: 格式:CALL OPR 执行的操作: (SP)←(SP)-2 ((SP)+1,(SP))←(IP) (IP)←(EA) 其中EA:由OPR寻址方式(除立即数以外的任何一种寻址方式)所确定的有效地址。 ③ 段间直接调用: 格式:CALL FAR PTR OPR 执行的操作:(SP)←(SP)-2 ((SP)+1,(SP))←(CS) (SP)←(SP)-2 ((SP)+1,(SP))←(IP) (IP)←OPR偏移地址(指令中第2,3字节) (CS)←OPR段地址(指令中第4,5字节) 因为主程序和子程序不在同一段中,所以在保留返回地址和设置目标地址的时候都必须把段地址考虑在内。 格式:CALL DWORD PTR OPR 执行的操作: (SP)←(SP)-2 ((SP)+1,(SP))←(CS) (SP)←(SP)-2 ((SP)+1,(SP))←(IP) (IP)←(EA) (CS)←(EA+2) 其中EA是由OPR的寻址方式确定的有效地址。实际上,CALL指令的使用方法与JMP指令相同,所以在指令的格式中也是可以加上如NEAR PTR的属性操作符的。 ④ 段间间接调用: RET返回指令具体可以分成4种情况返回:段内返回、段内带立即数返回、段间返回、段间带立即数返回。 (2)RET返回指令 它放在子程序的末尾,使子程序在功能完成后返回主程序继续执行。返回指令的功能就应该是将返回地址出栈送IP寄存器(段内)或IP、CS寄存器对(段间)。 ① 段内返回 格式:RET 执行的操作:(IP)←((SP)+1,(SP)) (SP)←(SP)+2 ② 段内带立即数返回 格式:RET EXP 执行的操作:(IP)←((SP)+1,(SP)) (SP)←(SP)+2 (SP)←(SP)+D16 EXP一个表达式,根据它计算出来的常数成为机器指令中的位移量D16 。 ③ 段间返回: 格式:RET 执行的操作:(IP)←((SP)+1,(SP)) (SP)←(SP)+2 (CS)←((SP)+1,(SP)) (SP)←(SP)+2 格式:RET EXP 执行的操作:(IP)←((SP)+1,(SP)) (SP)←(SP)+2 (CS)←((SP)+1,(SP))
显示全部
相似文档