中断处理的全过程分为中断检测、中断响应和中断处理3个阶段。
1.中断检测
中断检测在每条指令结束时进行,检测是否有中断请求或是满足异常条件。
2.中断响应
中断响应是由处理器内部硬件完成的中断序列,而不是由程序执行的。在Intel 80x86中,中断响应过程的操作如下:
●对可屏蔽中断,从8259中断控制器芯片读取中断向量号;
●将标志寄存器EFLAG,CS和IP压栈;
●对于硬件中断,复位标志寄存器中的IF和TF位,禁止可屏蔽外部中断和单步异常;
●根据中断向量号,查找中断向量表,根据中断服务程序的首址转移到中断服务程序执行。
3.中断处理即执行中断服务程序。中断服务程序的主要内容如下:
●保存中断服务程序将要使用的所有寄存器的内容,以便于在退出中断服务程序之前进行恢复;
●如果中断向量被多个设备所共享,为了确定产生该中断信号的设备,需要轮询这些设备的中断状态寄存器;
●获取中断相关的其他信息;
●对中断进行具体的处理;
●恢复保存的上下文;
●执行中断返回指令,使CPU的控制返回到被中断的程序继续执行。