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

(微型计算机原理)第7章中断和异常.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 操作命令字及其编程 在按规定的顺序对8259A置入初始化命令字后, 8259A便处于准备就绪状态,等待中断源发来的中断请求信号,并处于完全嵌套中断方式。若想变更8259A的中断方式和中断响应次序,或想从8259A内读出某些寄存器内容, 就应向8259A写入操作命令字。操作命令字可在主程序中写入,也可在中断服务程序中写入。  (1) 8259A的中断方式。8259A的中断方式有5种: 完全嵌套方式、循环优先方式、特殊循环方式、特殊屏蔽方式和查询方式。 ① 完全嵌套方式。这是最基本的中断方式。 8259A在初始化编程后便处于这种方式。其特点是优先级次序随序号的递增而变低,即IR0优先级最高,IR1次之,而IR7优先级最低。在完全嵌套方式、CPU开中断情况下,执行某中断处理程序期间,不能响应本级或较低级中断, 但能响应较高级中断。 ② 自动循环方式。这实际上是等优先权方式。其特点是某一中断请求被响应后,该中断级便自动成为最低的中断级,其它中断源的优先级别也相应循环改变,以使各中断源被优先响应的机会相同,亦即优先等级是轮流的。例如IR4请求的中断结束后,自动变为最低优先级,而相邻的IR5请求的中断级变为最高级,IR6请求的中断变为次高级……;IR5请求的中断完成后, IR6请求的中断变为最高级,IR7请求的中断变为次高级……。 15. 异常16 异常16定义为协处理器出错故障。当CR0中EM位=0(协处理器未被模拟), 且协处理器发生了未被屏蔽的数字错误(如上溢或下溢)时,便会产生协处理器出错故障。把协处理器出错故障通知给系统,是在引起故障的浮点指令之后的下一条ESC协处理器指令或WAIT指令执行时进行。  协处理器出错故障发生,转入故障处理程序时,压入栈中的CS和EIP值指向引起错误的ESC或WAIT指令的第一字节。该故障不提供出错码, 引起故障的指令的地址由协处理器保存。 表 7.1 异常一览表 7.4 中断及异常的暂时屏蔽 中断及排错异常在某些条件下可被忽略或屏蔽。这时,被屏蔽的各种中断保持悬挂, 而排错异常则被废弃。引起中断和排错异常忽略及屏蔽的条件如下:  ① EFLAGS中的IF=0, 屏蔽外部可屏蔽中断。  ② IF=0时,执行STI指令,则在STI指令及下面一条指令执行期间, 屏蔽外部可屏蔽中断。这是因为一个过程执行完返回主程序前执行一条STI指令,允许可屏蔽中断发生,但希望在IRET指令执行完返回主程序后再响应中断。否则,若在IRET指令执行前响应中断,就会使过程不能返回,且过多占用堆栈。 ③ EFLAGS中的RF=1, 屏蔽排错故障。  ④ 系统正处理一个非屏蔽外部中断, 则屏蔽任何新的非屏蔽中断。  ⑤ 执行以SS为目的寄存器的MOV及POP指令时, 将在该指令及下面一条指令(常是以ESP为目的寄存器的MOV及POP指令)执行期间屏蔽各种中断及排错异常。这样便可安全完整地更新一个栈指针。  ⑥ 在指令前缀LOCK及被锁定的指令之间不允许中断。 7.5 中断及异常的优先级 表 7.2 中断/异常的优先级 7.6 实方式下的中断 图 7.5 实方式的中断向量表 图 7.6 可屏蔽中断的响应和处理过程 (1) CPU要响应可屏蔽中断请求,必须满足一定的条件, 即中断允许标志置1(IF=1),没有异常,没有非屏蔽中断(NMI=0), 没有总线请求。  (2) 当某一外部设备通过其接口电路中断控制器8259A发出中断请求信号时,经8259A处理后,得到相应的中断矢量号,并同时向CPU申请中断(INT=1)。 (3) 如果现行指令不是HLT或WAIT指令,则CPU执行完当前指令后便向8259A发出中断响应信号(INTA=0),表明CPU响应该可屏蔽中断请求。  若现行指令为HLT,则中断请求信号INTR的产生使处理器退出暂停状态, 响应中断,进入中断处理程序。  若现行指令为WAIT指令,且TEST引脚加入低电平信号,则中断请求信号INTR产生后, 便使处理器脱离等待状态,响应中断, 进入中断处理程序。  此外,对于加有前缀的指令,则在前缀与指令之间CPU不识别中断请求;对于目标地址是SS段寄存器的MOV和POP指令, 则CPU在这些指令之后的一条指令执行后方响应中断。 (4) 8259A连续两次(2个总线周期)接收到INTA=0的

文档评论(0)

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

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

1亿VIP精品文档

相关文档