8.3.1.2 硬件中断

  硬件中断来自处理机的外部条件,如I/O设备或其它处理机等,以完全随机的方式中断现行程序而转向另一处理程序。硬件中断又称为外中断。
  
  硬件中断主要有两种来源,一种是非屏蔽中断(NMI),另一种是来自各种外部设备的中断。由外部设备的请求引起的中断也称为可屏蔽中断。

  微型计算机配置的外部设备一般有硬磁盘(DISK),软磁盘(FLOPPY DISK),显示器(CRT)和各种打印机(LINE PRINTER)等。这些外部设备通过8259A可编程中断控制器和CPU相连,8259A可编程中断控制器可接收来自外设的中断请求信号,并把中断源的中断类型号送CPU,如果CPU响应该外设的中断请求,就自动转入相应的中断处理程序。

  从外设发出中断请求到CPU响应中断,有两个控制条件是起决定性作用的:

  (1) 该外设的中断请求是否屏蔽,这个条件由8259A的中断屏蔽寄存器控制;中断屏蔽寄存器的某位为0表示允许某种外设中断请求,某位为1表示某种外设的中断请求被屏蔽(禁止)。

  (2) CPU是否允许响应中断,这由标志寄存器(FLAG)中的中断允许位IF控制。如果IF=0,CPU就禁止响应任何外设的中断,如果IF=1,则允许CPU响应外设的中断请求。有两条指令能设置和清除IF位。
  STI 设置中断允许位(IF=1)
  CLI 清除中断允许位(IF=0)