网站大量收购闲置独家精品文档,联系QQ:2885784924

第章._输入与输出中断.ppt

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章._输入与输出中断.ppt

内部中断 1.除法出错中断——类型0 当执行DIVs(除法)或IDVs(整数除法)指令时,若发现 除数为0或商数超过了寄存器所能表达的范围,则立即产生一个 类型为0的内部中断,CPU转向除法出错的中断服务程序。它是 优先级最高的一种内部中断。 2.溢出中断——类型4    若上一条指令执行的结果使溢出标志位置1(OF=1),则在 执行溢出中断(INTO)指令时,将引起类型4的内部中断,CPU 就可以转入对溢出错误进行处理的中断服务程序。若OF=0 时,则本指令执行空操作,即此指令不起作用,程序执行下一条指令。INTO指令常常紧跟在算术运算指令之后,以便在该指令执 行产生溢出时由INTO指令进行特殊的处理。与除法出错中断不同,出现溢出状态时不会由上一条指令自动产生中断,必须由INTO指令明确地规定溢出中断。应当说明的是,在溢出中断服 务程序中,无需保存状态标志寄存器的内容(PSW),因为CPU 在中断响应时序中能自动完成这一操作。 3. 单步中断——类型1    8086/8088 CPU的状态标志寄存器中有一个跟踪(陷 阱)标志位TF。当TF被置位(TF1)时,8086/8088处于单 步工作方式,即CPU每执行完一条指令后就自动地产生一 个类型1的内部中断,程序控制将转入单步中断服务程序。 CPU响应单步中断后将自动把状态标志压入堆栈,然后清除 TF和IF标志位,使CPU在单步中断服务程序引入以后退出单 步工作方式,在正常运行方式下执行单步中断服务程序。 单步中断服务程序结束时,再通过执行一条IRET中断返回 指令,将CS与IP的内容退栈并恢复状态标志寄存器的内容, 使程序返回到断点处。由于在中断时TF位被保护起来了, 中断返回时TF位又被重新恢复(TF=1),所以CPU在中断返 回以后仍然处于单步工作方式。 在8086/8088指令集中,没有直接用来设置或清除TF 状态位的指令。但可以借助于压栈指令PUSHF和出栈指令 POPF通过改变堆栈中的值来设置或清除TF位。例如,先用 PUSHF指令将标志寄存器的内容(PSW)压入堆栈,再将堆 栈栈顶的值(即PSW)和0100H相“或”(OR),或和FEFFH 相“与”(AND),然后用POPF指令将上述操作的结果从堆 栈中弹出,达到设置或清除TF位的目的。 单步中断方式是一种很有用的调试手段,通过它可以 逐条观察指令执行的结果,做到精确跟踪指令流程,并确 定程序出错的位置 4. 断点中断——类型3 8086/8088指令系统中有一条设置程序断点的单字节 中断指令(INT 3),执行该指令以后就会产生一个中断类 型为3的内部中断,CPU将转向执行一个断点中断服务程序, 以便进行一些特殊的处理. 断点中断指令主要用于软件调试中,程序员可用它在 程序中设置一个程序断点。一般,断点可以设置在程序的 任何位置,但在实际调试程序时,只需在一些关键性的地 方设置断点。例如,可以用这种方法显示寄存器或存储器 的内容,检查程序运行的结果是否正确。由断点指令INT 是一个单字节指令,所以借助该指令可以很容易地在程序 的任何地方设置断点。 5. 用户定义的软件中断——类型n 在8086/8088的内部中断中,有一个可由用户定义的双字节的中断指令INT n,其第1个字节为INT的操作码,第2个字节n是它的中断类型号。中断类型号n由程序员编程时给定,用它指出相应的中断向量及其中断服务程序的入口地址。 内部中断的特点 (1)内部中断由一条INT n指令直接产生。 (2)除单步中断以外,所有内部中断都不能被屏蔽。 (3)由于内部中断不必通过查询外部来获得中断类型号,所以没有中断响应机器总线周期。 (4)硬、软中断的优先级排队如表6.2所示。除了单步中断以外,所有内部中断的优先权都比外部中断的优先权高。 (5)在使用断点中断(INT 3)来逐段地调试,可用中断服务程序在屏幕上显示有关的各种信息。如果所有断点处要求打印的信息都相同,就可以一律使用单字节的断点中断INT 3指令;但若要打印的信息不同,则指令中就需使用其他中断类型号。图6.20说明了在用双字节的INT n指令调试程序时,通过分别设置了5、6、7这3个中断类型号,使之转向不同的中断服务入口地址,分别打印出不同的信息。 (6)为避免由外设硬件产生INTR中断请求信号和提供中断类型号的麻烦,可以用软件中断指令INT nn来模拟外设提供的硬件中断,方法是使nn类型号与该外设的

文档评论(0)

czy2014 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档