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

当前位置:电子发烧友网 > 图书频道 > 电子 > 《计算机组成原理与汇编语言》 > 第5章 输入输出技术

第3节 中断方式

5.2.1 中断的基本概念


   1.中断的概念及中断源分类

      在CPU执行程序过程中,由于某种事件发生,强迫CPU暂时停止正在执行的程序而转向对发生的事件进行处理,事件处理结束后又能回到原中止的程序,

      接着中止前的状态继续执行原来的程序,这一过程称为中断。外部中断源产生引起中断的事件。
 

   INTR通常称为可屏蔽中断输入信号,高电平有效——表示外部中断源提出中断请求。 NMI称为非屏蔽中断请求输入信号,上升沿有效。

 
   2. 中断响应的一般过程

   (1)中断请求

   (2)中断承认

   CPU在每条指令执行的最后一个时钟周期检测中断请求输入端有无请求发生,而后决定是否对它做出响应。CPU承认一个中断请求,必须满足以下4个条件:

   ①一条指令执行结束。
 
   ③没有发生复位(RESET)、保持(HOLD)和非屏蔽中断请求(NMI)。
 
   ④开中断指令(STI)、中断返回指令(IRET)执行完,还需再执行一条指令才能响应INTR请求。 
   
  (3) 断点保护

   (4)中断源识别

   有两种常用的确定中断源的方法:

   ①软件查询。 

   ②中断矢量法。

 


 

   (5) 中断服务

       中断服务程序分为两种情况。如图5.9所示,第一种是不允许被中断的中断服务程序。第二种是可以被中断的中断服务程序,其流程图如图5.10所示。
 
   (6) 断点恢复

   (7) 中断返回


   3. 中断优先级及中断嵌套

      中断优先级控制应当解决这样两种可能出现的情况:

   ①当不同优先级的多个中断源同时提出中断请求时,CPU首先响应最高优先级的中断源。

   ②当CPU正在对某一中断源服务时,比它优先级更高的中断源提出中断请求时,CPU能够中断正在执行的中断服务程序而去对优先级更高的中断源进行服务。

 

 
5.2.2 8086(8088)的中断系统

8086(88)具有功能很强的中断系统,可以处理256个不同方式的中断。


1. 内部中断源

8086(88)的内部中断主要有5种。

(1) 除法错中断

(2) 单步中断

(3) 断点中断

(4) 溢出中断

(5)用户自定义的软件中断


2. 外部中断

8086(88)有两个信号输入端供外部中断源提出中断请求,下面分别予以说明。

(1) 非屏蔽中断NMI

(2) 可屏蔽中断请求INTR


       综上所述,我们用图5.13表示8086(88)CPU响应中断的处理过程。

   对图5.13作如下说明:
 
   ①在8086(88)CPU中,内部中断的除法错、溢出、断点及用户自定义软件中断的优先级最高,其次是NMI。 

   ②从图5.13可以看到,各中断的处理过程大致是相同的。

   ③在中断响应过程中,获取中断向量码的方式是各不相同的;但获得中断向量码之后的过程则是一样的。

   ④特别应提醒读者注意的是,图5.13的整个过程,从发现有中断直到转向中断服务程序这一复杂的过程,是由CPU硬件自动完成的。


   3. 中断向量表

      在8086(88)内存的开始1K字节建立了一个中断向量表,如图5.14所示。从中断向量表中我们可以看到,利用该表,将不同的中断源与其相对应的中断服务

   程序入口联系在一起。知道了中断源,利用中断向量表可以自动地转向相应的中断服务程序。