3.2.3 中断问题小结
在第二章的2.1.5小节和本章3.2节当中,分别对CPU的中断和中断系统做了详尽地讨论,下面对中断的一些关键问题进行总结。
1、中断处理过程
- 一个中断流程的激活首先需要中断请求信号有效;
- 有效的中断请求有可能是一个,也有可能是由多个中断源同时产生。因此中断控制器和CPU要对多中断源的优先级进行裁决。当前优先级最高的中断请求将首先得到服务。
- 接着,CPU进入中断应答周期,在中断应答周期当中,CPU执行如下操作:将标志寄存器的内容压入堆栈,标志寄存器的内容压入堆栈;清除中断标志和陷阱标志,目的是在中断响应周期禁止INTR中断的发生和单步功能;将代码段寄存器(CS)和指令指针(IP)的内容压入堆栈,保留返回地址;取出中断向量的内容,送入IP和CS,使程序指针指向由中断向量寻址的中断服务程序。
- 然后,CPU转向中断处理程序,在中断处理程序的末尾,需要安排中断返回指令。
- 遇到中断返回指令以后,自动弹出标志寄存器的内容,和中断返回地址,继续执行中断之前的程序。
|