- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. IA-32结构微处理器中的中断 在IA-32结构微处理器中有两条中断请求引脚: INTR和NMI。INTR是可屏蔽中断请求引脚,INTR上的信号是高电平有效。可以通过外部的中断控制器芯片(例如Intel 8259A),把外部I/O设备的多个中断请求源(最多可达64个源)的请求,通过INTR引脚送至CPU。在这条引脚上的中断请求,CPU是否响应,取决于CPU标志寄存器EFLAGS中的IF标志位。若IF=1,则CPU在当前指令执行完后响应中断;若IF=0,则中断被屏蔽(中断被挂起),直至IF=1(响应),或外部的中断请求撤消。 NMI是非屏蔽中断请求输入引脚,这是一个上升沿有效的信号,在此引脚上的请求不被IF标志位屏蔽,通常在当前指令执行完后,CPU响应此中断。NMI请求不被屏蔽而且是优先权最高的一种中断,故一般用于一些紧急情况的处理,如电源故障、物理存储器的读写错误等。 2. IA-32结构微处理器中的异常 IA-32结构微处理器指令的执行可以引起多种异常,但汇总起来可以分为三类。 (1) 故障(Fault) 这类异常是由引起异常的指令执行之前报告的,因此,当控制转移到异常处理程序时所保存的CS和EIP(断点)就是引起异常的指令的CS和EIP。在IA-32结构微处理器上,故障完全可以重启动。这就是说,当故障处理程序消除了故障以后,用IRET指令返回至引起故障的指令,从而使原来的程序恢复执行(从引起故障的指令开始执行)。 故障不管是在引起异常的指令开始执行之前被检测到,还是在指令执行期间被检测到,因指令执行而引起的变化都要被删去,以使源操作数恢复到指令开始执行之前的状态。这样,当故障排除之后恢复执行时的状态,与刚开始执行这条指令时的状态处在同样的输入条件下,以保证得到正确的结果。 (2) 陷阱(Trap) 这种异常是在引起异常的指令执行之后报告的,因而当控制转移到异常处理程序时所保留的断点是引起异常的指令的下一条指令的CS和EIP。在这种情况下,引起异常的指令已经执行了,它的结果一般已反映在寄存器或内存中。当异常处理程序用IRET指令返回后,程序从引起异常的下一条指令恢复执行。 (3) 夭折(Abort) 引起这种异常的情况是比较严重的,通常是由硬件故障或在系统表中的非法或不一致的值所引起的。在这种情况下,引起异常的程序不能恢复执行。当接收到夭折异常时,可能需要在处理程序中在重建系统表之后重新启动操作系统。 段和页异常是故障类异常的例子。当访问的单元所在的页或段不在物理存储器中时,就会产生此类异常(缺页故障异常)。当缺页处理程序把此页调入物理内存时,就可以返回至引起缺页故障的指令重新执行(此时指令能正确执行)。单步和数据断点是陷阱类异常的很好的例子。当执行到这种指令时,程序暂停就可以在异常处理程序中对程序的运行做必要的调试,然后从下一条指令恢复执行。 13.2.3 虚拟8086方式 20世纪80年代PC系列机的广泛流行和推广使PC系列机的年产量早已超过2000万台,总装机台数已达到1.5亿台,从而使MS-DOS(PC-DOS)成为使用最广泛、最普及的系统软件。在MS-DOS支持下的大量的支撑软件,以及在各行各业、各个领域所使用的应用软件更是数不胜数。这是人类的一笔十分宝贵的智力财富。 但计算机技术的迅速发展,使计算机的功能以惊人的速度发展和提高。若仍运行单用户、单任务的DOS系统及相应的软件,则是硬件资源的极大浪费。 DOS已经不能适应硬件的发展,也不能适应用户应用发展的需要。好的多用户、多任务操作系统是PC系列机发展的必然的需求(目前大量推广的是Windows、LINUX和UNIX操作系统)。另一方面,在DOS支持下的大量的软件不能丢弃,必须能在新的操作系统下很好地运行。 为了适应这样的需求,在Intel的80386、80486、Pentium芯片上都设置了实地址工作方式。这种方式是与8086方式(DOS的基础)完全兼容的,可以运行DOS支持下的所有软件。 但是,实地址方式的功能是十分有限的,它的寻址空间只有1MB;它不能运行在保护虚地址方式(这是充分发挥IA-32结构微处理器功能的工作方式),从而就不能运行多任务;没有特权机制,也不能发挥IA-32结构微处理器芯片内的分页式存储管理机制的功能。总之,当IA-32结构微处理器工作在实地址方式下就不能支持多用户、多任务操作系统的运行。为了解决这一问题,在80x86芯片中增加了一种虚拟8086方式。 这是在保护虚地址方式下的一种方式,即80x86总体上是工作在保护虚地址方式,支持多用户、多任务操作系统的运行,而在多任务的环境中,有的任务可以工作在虚拟8086方式。也就是在一个多用户、多任务的操作系统
文档评论(0)