- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五、中断指令 8086可以管理256个中断,有3条与中断相关的指令,分别是: INT i8 ;中断调用指令:产生i8号中断 IRET ;中断返回指令:实现中断返回 INTO ;溢出中断指令:若溢出标志OF=1,产生4号中断;否则顺序执行。 INT i8 主程序 IRET 中断服务程序 中断调用 中断返回 5.2.6 处理机控制类指令 处理器控制类指令可以分为两类: 一、标志位操作指令(共7条): CLC STC CMC (CF) CLD STD (DF) CLI STI (IF) 二、处理器协调类指令: 对CPU状态进行控制的指令。 NOP HLT LOCK WAIT 一、标志位操作指令 用于设置进位标志: CLC ;复位进位标志:CF←0 STC ;置位进位标志:CF←1 CMC ;求反进位标志:CF←~CF 用于设置方向标志:通常在串操作指令前使用。 CLD ;复位方向标志:DF←0 STD ;置位方向标志:DF←1 用于设置中断标志:用于设置是否允许可屏蔽中断。 CLI ;复位中断标志:IF←0,关中断 STI ;置位中断标志:IF←1,开中断 二、处理器协调类指令 空操作指令:NOP 不执行任何操作,占用一个字节,空耗一个指令执行时间。 可以利用NOP实现软件延时。 暂停指令:HLT CPU 进入暂停状态,此时 CPU 不进行任何操作,直到系统复位或接收到外部中断请求信号。HLT 指令常用于等待外部中断。中断服务程序结束后,返回执行 HLT 的下一条指令。 二、处理器协调类指令 封锁前缀指令:LOCK LOCK 前缀放在其它指令前,使得这条令执行时,8086 处理器的封锁输出引脚有效,即把总线封锁,其它控制器不能控制总线,直到该指令执行完结束,解除总线封锁。 等待指令:WAIT CPU 进入等待状态,检测 #TEST 信号线,当此信号线为低电平时,退出等待状态,执行WAIT的后续指令。 进入等待状态后,可以响应外部中断,但中断返回后,仍然保持等待状态。 作业 P101 5.1 5.2 5.3 5.5 5.6 5.8 5.9 5.10 第*页 5.2 8086/8088指令系统 5.2.1 数据传送类指令 5.2.2 算术运算类指令 5.2.3 位操作类指令 5.2.4 串操作类指令 5.2.5 控制转移类指令 5.2.6 处理机控制类指令 5.2.5 控制转移类指令 控制转移类指令用于实现分支、循环、过程等程序结构,是仅次于传送指令的常用指令。 重点掌握:JMP/Jcc/LOOP CALL/RET INT n/IRET 常用系统功能调用 一般了解: LOOPZ/LOOPNZ INTO 控制转移类指令通过改变IP(和CS)值,实现程序执行顺序的改变。 一、无条件转移指令 只要执行无条件转移指令JMP,就使程序转到指定的目标地址处,从目标地址处开始执行指令。 根据目标地址的表达形式以及跳转的距离,JMP指令分成5种类型: ⑴ 段内直接短转移 ⑵ 段内直接近转移 ⑶ 段内间接转移 ⑷ 段间直接转移 ⑸ 段间间接转移 JMP 目标地址 目标地址的表达形式 直接寻址方式 转移地址象立即数一样,直接在指令的机器代码中。 例:JMP LABLE 间接寻址方式 转移地址在寄存器或主存单元中。 例:JMP AX 用标号表达 用寄存器或存储器操作数表达 目标地址的范围:段内 段内转移——近转移(默认) 跳转的距离在-32768~+32767之间。 不需要更改CS段地址,只要改变IP偏移地址。 当向地址增大方向转移时,位移量为正;向地址减小方向转移时,位移量为负。 段内转移——短转移(short ptr) 目标地址与JMP指令的下一条地址之间的差值为-128~+127 。 代码段 代码段 目标地址的范围:段间 段间转移——远转移(far ptr) 从当前代码段跳转到另一个代码段,可以在1MB范围。 更改CS段地址和IP偏移地址。 目标地址必须用一个32位数表达,叫做32位远指针(逻辑地址)。 代码段 代码段 段内直接转移 JMP label ;IP←label again: dec cx ;标号again的指令 …… jmp again ;转移到again处继续执行 …… jmp output ;转向output …… output: mov result, al ;标号output的指令 段内间接
文档评论(0)