您好,欢迎来电子发烧友网! ,新用户?[免费注册]

当前位置:电子发烧友网 > 图书频道 > 电子 > 《计算机组成原理与汇编语言》 > 第7章 Pentium简介

第5节 中断和异常

7.5.1 分类

1. 中断

         由外部事件引起的中断称为外部中断。这里有我们熟悉的可屏蔽中断 INTR和非屏蔽中断NMI。

   2. 异常

         如上所述,在8088中的内部中断,如除法、单步、溢出、软件中断(INTn),均被列入异常中。有人也将它们称之为陷阱。

7.5.2 中断或异常的响应过程

   1.优先级
       
        前面已经提到80386之后的处理器有许多中断和异常发生,它们的优先级如表7.4所示。
 
   2.实地址模式下的响应过程
  
       (1) 获得向量码
   
       (2) 进行断点保护
   
       (3) 获得查表值
   
     查表值=基地址+中断向量码×4


 3. 保护模式下中断响应过程

   (1) 中断描述符表
   (2) 错误码
   (3) 响应过程
 

 

 

由图7.22可见,中断或异常发生后,从CPU获取它们相应的中断向量码开始中断响应。
  

  ①由IDTR的基地址和中断向量码,处理器计算出查表值:查表值=基地址+中断向量码×8
  

  ②由中断描述符中规定的选择符,在GDT(全局描述符表)或LDT(局部描述表)中查到代码段描述符。
  

   ③由段描述符取出基地址(线性基地址),将其与中断描述符中的偏移量结合在一起,构成中断服务程序的入口地址,即中断服务入口=段线性基地址+偏移量

   (4) 断点保护
    

    在图722中未能描绘出在中断响应过程中处理器对断点的保护。第5章说明了8088中断响应时,处理器如何进行断点保护,它将FLAGS、CS和IP分别保存在用户堆栈中。
    

   在80386以后的处理器中,处理器将断点信息保存在特权级最高的核心堆栈中。这是因为后来的处理器都支持多级堆栈。在核心堆栈中所保存的断点信息如图7.23所示。