请求CPU中断的设备或事件称为中断源,根据中断源的不同类别,可以将中断分为内中断和外中断两种。
中断的处理过程一般按如下步骤进行:
- 关中断:进入不可再次响应中断的状态,由硬件自动实现;
- 保存断点:为了在中断处理结束后能正确地返回到中断点,在响应中断时,必须将当前的程序计数器中的内容(即断点)保存起来;
- 识别中断源,转向中断服务程序:在多个中断源同时请求中断的情况下,根据优先级进一步判断中断源,并转入相应的中断服务程序入口;
- 保存现场和屏蔽字:进入中断服务程序后,首先要保存现场(一般指的是程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容),保存旧的屏蔽字是为了中断返回前恢复屏蔽字,设置新的屏蔽字是为了实现屏蔽字改变中断优先级或控制中断的产生;
- 开中断:在执行中断服务程序时,允许更高级中断请求得到响应,实现中断嵌套;
- 执行中断服务程序主体:懂的都懂;
- 关中断:为了在恢复现场和屏蔽字时不被中断打断;
- 恢复现场和屏蔽字:将现场和屏蔽字恢复到进入中断前的状态;
- 中断返回:懂的都懂。
进入中断时执行的关中断、保存断点操作和识别中断源是由硬件实现的。