【第十二章】内中断

12.4 中断过程

我们也可以用中断类型码,在中断向量表中找到中断处理程序的入口。这个入口地址的最终目的是用它设置CS和IP,使CPU执行中断处理程序。

用中断类型码找到中断向量,并用它设置CS和IP,这个工作是由CPU的硬件自动完成的。CPU硬件完成这个工作的过程被称为中断过程

下面是8086CPU收到中断信息后,所引发的中断过程:

  1. (从中断信息中)取得中断类型码
  2. 标志寄存器的值入栈(因为在终端过程中要修改标志寄存器的值,所以先将其保存在栈中)
  3. 设置标志寄存器的第8位TF和第9位IF的值为0(这一步的目的后面将介绍)
  4. CS的内容入栈
  5. IP的内容入栈
  6. 从内存地址为中断类型码4 和 终端类型码4+2 的两个字单元中读取中断处理程序的入口地址设置IP和CS

12.5 中断处理程序和iret指令

中断处理程序的编写方法和子程序的比较相似,下面是常规的步骤:

  1. 保存用到的寄存器
  2. 处理中断
  3. 恢复用到的寄存器
  4. 用iret指令返回

iret指令的功能用汇编语法描述为: