微机原理-第5版-周荷琴-第13章--4.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《微型计算机原理与接口技术》 第5版 第13章 32位微型机的基本 工作原理;13.4 保护模式下的中断和异常;13.4.1 中断和异常;当CPU接收到一个中断或检测到一个异常时,就挂起当前运行的程序或任务,转去执行中断或异常处理程序。完成后再恢复被中断的程序或任务。只有出现了不可恢复的异常或中断,当前运行程序才被迫中止。 每种中断和异常对应一个中断向量n,n=0~255。 0~31是异常的向量号,其中20~31保留。 32~255是用户可选的中断向量号。 程序以n为索引,在IDT表中查找出对应的中断/异常描述符,再找出其处理程序入口,转去执行。 中断/异常程序的最后要有IRET(或IRETD)指令,通过它返回被中断的程序。;1. 中断;(1) Local APIC模块 集成在CPU内,它可接收: 局部中断,可从LINT[1,0]脚引入,也可从模块内部产生; 系统中断,由外部引入,经I/O APIC模块产生中断。 (2) I/O APIC模块 装在系统板上,经系统总线实现APIC技术。它可接收外部硬件中断请求,并决定中断向量号n,由系统总线送给Local APIC处理。 (3) 总线;外部中断源 (1)局部中断 直接从LINT[1,0]引脚引入。 Local APIC模块内部产生,包括 APIC定时器中断 性能监控中断 热传感器中断 APIC内部错中断 模块内部设置了局部中断向量表LVT,来管理这5种局部中断源。;(2)系统中断 系统中的PCI、IDE、ISA等设备,都可将请求送I/O APIC的引脚INTIN0~15上,产生系统中断请求。I/O APIC模块顺序查询这16个引脚,确定n并提交给Local APIC处理。 (3)内部处理器间中断IPIs 多处理器系统中,处理器向Local APIC模块中的中断命令寄存器ICR写入命令字,即启动内部处理器间中断IPIs。IPIs也能送到另一个处理器。; 2)软件中断 利用软件中断指令INT n产生的中断,n可以是0~255。 用INT n指令产生的软件中断,不能用标志寄存器EFLAGS中的IF标志屏蔽,IF标志也不影响NMI硬件中断。; 2.异常;(1)故障(Fault) 一种能被修正的异常,故障排除后,程序就可恢复执行。 发现故障后,处理器保存该指令执行前的状态,即把该指令(而非下条指令)的CS:EIP作为返址存入异常处理程序的返回堆栈。 (2)陷阱(Trap) 执行陷阱指令后产生的异常。单步和断点指令(INT 3)就属于陷阱。 所保存的断点CS:EIP指向引起陷阱指令的下一条将要执行的指令。 (3)中止(Abort) 系统出现严重情况时产生的一种异常,引起中止的指令的位置无法精确确定。 产生中止时,正在执行的程序不能被恢复执行。处理程序重建各种表格,可能需要重新启动操作系统。;中断或异常处理时,要将EFLAGS、CS、EIP等值压入堆栈,以便正确返回。 有些异常发生时,会产生错误代码,也要将其压入堆栈,它能帮助异常处理程序确定异常产生的原因。 2)异常类型 保护模式下的异常和中断见表13.4。n=0~255,其中0~19为异常,32~255中断,20~31保留。 386定义了14个异常,n=0~16(2,15除外); 486增加了对界检查错异常(#AC); P6增加了机器检查错异常(#MC); P III增加了SIMD浮点异常(XF#)。;13.4 中断和异常;在实模式下中断转移方法与8086相同: 以中断类型号?4为偏移量,在中断向量表中找到入口,读取CS: IP,转中断处理程序。 在保护模式下响应中断和异常时 以中断向量号N为索引,在IDT表中找出描述符,根据其内容转中断或异常处理程序。 ;1.中断描述符表IDT和门描述符; 2.中断响应和异常处理的步骤; 3. 各种转移方??;1)通过中断门或陷阱门的转移 ;⑤转入中断处理程序。由CS中的基址+偏移量(中断门或陷阱门中)转入中断处理程序。中断门转移中置IF=0,禁止INTR中断。陷阱门不改变IF位。 ⑥执行IRET指令从中断或异常处理程序返回原程序。从栈中弹出EIP和CS, 再弹出EFLAGS和错误代码,恢复特权级。若改变了特权级,出栈过程略有不同。;2)通过任务门的转移;3)转移方式比较 使用中断门或陷阱门, 由当前任务内的一个过程进行转移, 比较简单,可很快转移到处理程序。但处理程序要负责保存及恢复处理器的寄存器内容,以便返回。 通过任务门由另一个任务进行转移, 优点: 寄存器内容都自动保存;允许处理程序使用一个新的0级堆栈,防止系统崩溃;处理程序可与其它任务隔离。但任务切换时必须保存所有机器状态,速度较慢。

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档