中断屏蔽寄存器的I/O端口地址是21H,它的8位对应控制8个外部设备(见图8.4(a)),通过设置这个寄存器的某位为0或为1来允许或禁止某外部设备的中断。某位为0表示允许某种外设中断请求,某位为1表示某种外设的中断请求被屏蔽(禁止)。
  
  例如,只允许键盘中断,可设置如下中断屏蔽字:
  MOV AL, 11111101B
  OUT 21H, AL
  
  如果系统重要新增设键盘中断,则可用下列指令实现:
  IN AL, 21H
  AND AL, 11111101B
  OUT 21H, AL

  在编写中断程序时,应在主程序的初始化部分设置好中断屏蔽寄存器,以确定允许用中断方式工作的外部设备。

  外部设备向CPU发出中断请求,CPU是否响应还与标志寄存器中的中断标志位IF有关。如果IF=0,CPU就禁止响应任何外设的中断,也就是说,CPU将不会产生中断来处理外设的请求。如果IF=1,则允许CPU响应外设的中断请求, 允许CPU响应外设的中断请求(IF=1)也叫做开中断,反之叫做关中断(IF=0)。

  我们已经知道,当任何类型的中断发生时,当前的FLAGS要保存入栈,然后清除IF位进入中断处理程序。如果允许在一个中断处理程序的执行过程中发生硬中断,则必须用一条STI指令开中断。当执行到中断返回指令IRET,又取出FLAGS先前的值,其中IF为1,CPU将允许硬中断再次发生。