微机原理和汇编语言 第7章 输入输出和中断.ppt

微机原理和汇编语言 第7章 输入输出和中断.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.4.2 中断向量表 中断向量表是存放中断向量的一个特定的内存区域。所谓中断向量,就是中断服务子程序的入口地址。对于8086/8088系统,所有中断服务子程序的入口地址都存放在中断向量表中。 8086/8088可以处理256种中断,每种中断对应一个中断类型号,每个中断类型号与一个中断服务程序的入口地址相对应。 每个中断服务程序的入口地址占4 个存储单元,其中低地址的两个单元存放中断服务程序入口地址的偏移量(IP);高地址的两个单元存放中断服务程序入口地址的段地址(CS)。 256个中断向量要占 256×4=1024个单元,即中断向量表长度为1K个单元。8086/8088系统的中断向量表位于内存的前 1K字节,地址范围为00000H?003FFH。 8086/8088的中断向量表如图7.18所示。 00000H 00003H 00008H 0000BH 00004H 00007H 0000CH 0000FH 00010H 00013H 00014H 0007FH 00080H 003FFH IP内容 CS内容 类型0中断入口地址 (除法出错) … 专用中断 (5个) 用户自定义中断(224个) 系统保留中断(27个) 类型1中断入口地址 (单步中断) 类型2中断入口地址 (NMI) 类型3中断入口地址 (断点中断) 类型4中断入口地址 (溢出中断) 类型5中断入口地址 类型31中断入口地址 类型32中断入口地址 类型255中断入口地址 … 0007CH 003FCH 图7.18所示的中断向量表中有5个专用中断(类型0?类型4),它们已经有固定用途;27个系统保留的中断(类型5?31)供系统使用,不允许用户自行定义;224 个用户自定义中断(类型32 ?255),这些中断类型号可供软中断INT n或可屏蔽中断INTR使用,使用时,要由用户自行填入相应的中断服务程序入口地址。(其中有些中断类型已经有了固定用途,例如,类型21H的中断已用做DOS的系统功能调用)。 由于中断服务程序入口地址在中断向量表中是按中断类型号顺序存放的,因此每个中断服务程序入口地址在中断向量表中的位置可由“中断类型号×4”计算出来。CPU响应中断时,把中断类型号N乘以4,得到对应地址4N(该中断服务程序入口地址所占4个单元的第一个单元的地址),然后把由此地址开始的两个低字节单元(4N,4N+1)的内容装入IP寄存器,再把两个高字节单元(4N+2,4N+3)的内容装入CS寄存器,于是CPU转入中断类型号为N的中断服务程序。 这种采用向量中断的方法,CPU 可直接通过向量表转向相应的处理程序,而不需要去逐个检测和确定中断源,因而可以大大加快中断响应的速度。 FLAGS 入栈 N N N 完成当前指令 有内部 中断吗? 从指令中或内部 获得中断类型号 从外部得到 中断类型号 TEMP=1? 令TEMP=TF 调中断处理程序 Y Y Y 有NMI 中断吗? 有INTR 中断吗? TF=1? 执行下一条指令 N N N N Y 中断类型号2 Y IF=1? 中断类型号1 清IF、TF CS、IP入栈 返回断点 FLAGS出栈 IP、CS出栈 中断服务 有NMI? (1) (1) (1) (1) (2) (3) (4) (5) Y Y 7.4.3 8086/8088的中断处理过程 在图示流程中,(1)?(5)是CPU的内部处理,由硬件自动完成。 所有内部中断(除法错、INT n、INTO、单步和断点中断)以及NMI中断不需要从数据总线上读取中断类型码,而INTR中断需由CPU读取中断类型码,其中断类型码由发出INTR信号的接口电路提供。 该流程图还反映出了8086/8088系统中各中断源优先级的高低。 7.4.4 中断服务程序的设计 中断服务程序的一般结构如图7.20所示。如前所述,若该中断处理能被更高级别的中断源中断,则需加入开中断指令。在中断服务程序的最后,一定要有中断返回指令,以保证断点的恢复。 用户在设计中断服务程序时要预先确定一个中断类型号,不论是采用软件中断还是硬件中断,都只能在系统预留给用户的类型号中选择。 关中断 保护现场 开中断 中断服务 恢复现场 中断返回 图7.20 中断服务程序的一般结构 确定了中断类型号,还要把中断服务入口地址置入中断向量表,以保证在中断响应时CPU能自动转入与该类型号相对应的中断服务程序。将中断服务程序入口地址置入中断向量表的方法有两种:DOS系统功能调用法和直接装入法。 1.DOS系统功能调用法(INT 21) 功能号: (AH)=25

文档评论(0)

134****9146 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档