微机原理与接口技术 漆强版 第4章 8086寻址方式与指令系统.ppt

微机原理与接口技术 漆强版 第4章 8086寻址方式与指令系统.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(3)不相等循环指令 格式:LOOPNZ/LOONE 目标地址 功能: ① CX ← CX - 1 ② 如果CX =0或ZF=1,结束循环,执行后续语句;否则: ③ 转移到标号处,循环体被重复。 4.过程调用与返回指令 需要反复被调用的具有一定功能的程序段可以被设计成过程(也称为子程序),以供需要时调用。在过程中需要安排返回指令,使得过程结束时,返回到调用处。 过程与调用程序在同一段内,称“段内调用”;过程与调用程序不在同一段内,称“段间调用”。 过程调用指令CALL和返回指令RET均不影响标志位,但影响堆栈内容。 (1)过程调用指令 段内直接调用指令 格式:CALL 过程名 指令完成的操作: ① (SP)←(SP)-2; ② (SS:SP)←(IP); ③ (IP)←(IP)+16位偏移量。 段内间接调用指令 格式:CALL 寄存器 指令完成的操作: ① (SP)←(SP)-2; ② (SS:SP)←(IP); ③ (IP)←寄存器的值。 段间直接调用指令 格式:CALL FAR PTR 过程名 指令完成的操作: ① (SP)←(SP)-2; ② (SS:SP)←(CS); ③ (SP)←(SP)-2; ④ (SS:SP)←(IP); ⑤ (IP)←过程入口偏移地址; ⑥ (CS)←过程入口段地址。 段间间接调用指令 格式:CALL DWORD PTR 存储单元地址 指令完成的操作: ① (SP)←(SP)-2; ② (SS:SP)←(CS); ③ (SP)←(SP)-2; ④ (SS:SP)←(IP); ⑤ (IP)←双字存储单元低16位数据; ⑥ (CS)←双字存储单元高16位数据。 (2)过程返回指令 无参数段内返回 格式:RET 指令完成的操作: ① (IP)←(SS:SP); ② (SP)←(SP)+2。 有参数段内返回 格式:RET n 指令完成的操作: ① (IP)←(SS:SP); ② (SP)←(SP)+2+n。 无参数段间返回 格式:RET 指令完成的操作: ① (IP)←(SS:SP); ② (SP)←(SP)+2。 ③ (CS)←(SS:SP); ④ (SP)←(SP)+2。 有参数段间返回 格式:RET 指令完成的操作: ① (IP)←(SS:SP); ② (SP)←(SP)+2。 ③ (CS)←(SS:SP); ④ (SP)←(SP)+2+n。 5.中断指令 中断是输入/输出程序设计中常用的控制方式,是指计算机暂时停止当前正在执行的程序而转去执行处理某事件的中断服务程序。 当中断服务程序执行完后,再恢复执行被暂时停止的程序。 (1)中断指令 格式:INT n 功能:产生一个类型为n的软中断。 指令完成的操作: ① 标志寄存器入栈; ② 断点地址入栈,CS先入栈,然后IP入栈; ③ 从中断向量表中获取中断服务程序入口地址,即: IP← ( 0:4n+1,0:4n) CS← ( 0:4n+3,0:4n+2) (2)溢出中断指令INTO 格式:INTO 功能:检测OF标志位。当OF=1时,产生中断类型为4的中断;当OF=0时,不起作用。 指令完成的操作(当产生中断类型为4的中断时): ① 标志寄存器入栈; ② 断点地址入栈,CS先入栈,然后IP入栈; ③ 从中断向量表中获取中断服务程序入口地址,即: IP ← ( 0:13,0:12) CS ← ( 0:15,0:14) (3)中断返回指令IRET 格式:IRET 功能:从中断服务程序返回断点处,并将标志寄存器的值从堆栈弹出,继续执行原程序。本指令用于中断服务程序中。 指令完成的操作: ① 断点出栈:IP先出栈,CS后出栈; ② 标志寄存器出栈。 * 2.移位指令 移位指令可以对寄存器或存储单元的内容按字节或字进行操作。 (1)逻辑左移指令 格式:SHL dest,CNT 功能:目标操作数左移CNT次,最低位补0,最高位移至标志位CF中。 说明: CNT代表移动次数。当CNT 1时,必须由寄存器CL说明。 CF、ZF、SF、PF的值由运算结果定。 CNT = 1时,若移位后符号位发生变化,则标志位OF=1,否则OF=0。 CNT 1时,对OF无定义。 (2)逻辑右移指令 格式:SHR dest,CNT 功能:目标操作数右移CNT次,最低位移至标志位CF中,最高位补0。 说明: CNT代表移动次数。当CNT 1时,必须由寄存器CL说明。 CF、ZF、SF、PF的值由运算结果定。 CNT = 1时,若移位后符号位发生变化,则标志位OF=1,否则OF=0。 CNT 1时,对OF无定义。 (3)算术左移指令 格式:SAL dest,CNT 功能:目标操作数左移CNT次,最低

文档评论(0)

有一二三 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档