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

微型计算机技术02范例.ppt

  1. 1、本文档共110页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三、 中断操作和中断系统 溢出中断由INT0指令引起 断点中断由INT3指令引起 单步由标志TF引起 ↘不对应指令 除0由计算结果引起↙不对应指令 系统处理中断的方法很多,处理中断的步骤中最主要的一步就是如何根据不同的中断源进入相应的中断服务子程序,目前用的最多的就是向量式中断。 2、中断向量和中断向量表 三、 中断操作和中断系统 中断向量:把各个中断服务子程序的入口都称为一个中断向量;每个中断类型对应一个中断向量。 中断向量表:将这些中断向量按一定的规律排列成一个表,就是所谓的中断向量表,当中断源发出中断请求时,即可查找该表,找出其中断向量,就可转入相应的中断服务子程序。 2、中断向量和中断向量表 8086/8088中断系统中的中断向量表是位于0段的0~3FFFH的存贮区内,每个中断向量占四个单元,其中前两个单元存放中断处理子程序的入口地址的偏移量(IP),低位在前,高位在后;后两个单元存放中断处理子程序入口地址的段地址(CS),也是低位在前,高位在后,整个中断向量的排列是按中断类型号进行的。 2、中断向量和中断向量表 图示给出了中断类型码与中断向量所在位置之间的对应关系。其中00H~04H为专用中断,05H~3FH为系统保留中断,用户一般是不能对它们定义的(这里面有一些为固定的用途,如INT 21H即为MS-DOS 的系统调用),40~FF为用户定义的中断。 图2-16 00H~04H 系统专用 10H~1FH BIOS用 40H~FFH 用户用 08H~0FH 硬件中断 20H~3FH DOS用 2、中断向量和中断向量表 中断类型号*4即可计算某个中断类型的中断向量在整个中断向量表中的位置。如类型号为20H,则中断向量的存放位置为20H*4=80H,(设中断服务子程序的入口地址为4030:2010,则在0000:0080H?0000:0083H中就应顺序放入10H、20H、30H、40H。当系统响应20H号中断时,会自动查找中断向量,找出对应的中断向量装入CS、IP,即转入该中断服务子程序。 3、中断响应过程与时序 (1)硬件中断的响应过程 硬件中断指的是由NMI引脚进入的非屏蔽中断或由INTR引脚进入的可屏蔽中断。 从NMI引脚进入的中断为非屏蔽中断,它不受中断允许标志IF的影响。其类型号为2,入口地址放在0段的0008H、0009H、000AH和000BH这4个单元中。 在实际系统中,非屏蔽中断一般用来处理系统的重大故障,如系统掉电处理。 (1)硬件中断的响应过程 下面以可屏蔽中断为例。 CPU在INTR引脚上接到一个中断请求信号,如果此时IF=1,CPU就会在当前指令执行完以后开始响应外部的中断请求,这时,CPU在INTA引脚连续发两个负脉冲,外设在接到第二个负脉冲以后,在数据线上发送中断类型码,接到这个中断类型码后,CPU做如下动作: ①从数据总线上读取中断类型码,将其放入暂存器保存; ②将标志寄存器内容压入堆栈,以保护中断时的状态; ③将IF和TF标志清0,目的是防止在中断响应的同时又来别的中断,而将TF清0是为了防止CPU以单步方式执行中断处理子程序。这时要特别提醒,因为CPU在中断响应时自动关闭了IF标志,因此用户如要进行中断嵌套时,必须在自己的中断处理子程序中用开中断指令来重新设置IF; ④保护断点,断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。因此保护断点的动作就是将当前的IP和CS的内容入栈,保护断点是为了以后正确地返回主程序; ⑤根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,即呆自动转向中断服务子程序。 (1)硬件中断的响应过程 图2-17 中断响应流程图 流程图的几点说明 ①8086/8088除软件中断外,内部“非屏蔽中断”、“可屏蔽中断”均设立有优先级,其中内中(除单步外)――即0、1、3、4号中断的优先级高于非屏蔽中断,非屏蔽中断高于可屏蔽中断,单步中断优先级最低; ②只有在可屏蔽中断的情况下才判IF=1?,才取中断类型码,其余的没有这个动作。 ③关于单步中断,它是每执行一条指令中断一次,显示出当时各寄存器的内容,供用户参考,当进入单步中断响应时,CPU自动清除了TF,在中断返回后,由于恢复了响应时的标志寄存器的值,因此TF=1,执行完一条指令后又进入单步中断,直到程序将TF改为0为止。 ④关于中断的嵌套,NMI总是可以响应的,若在中断处理子程序中设立了开中断指令,INTR的请求也能响应。 ⑤弹出IP、CS、标志,返回断点的动作由IRET指令完成。 ⑥有些情况下,即使条件满足,CPU也不能马上响应中断,必须执行完下一条指令(而不是当前指令)才行。 正好执行LOCK指令; 执行往SS寄存器赋值的

文档评论(0)

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

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

1亿VIP精品文档

相关文档