1.响应中断的条件
1)有中断请求信号。
2)中断允许开放,即EA=1,且中断源对应的中断允许位置位。
3)无同级或更高级中断正在服务。
4)当前的指令周期已经结束。
5)如果当前指令为RETI或访问IE和IP的指令,至少需要再执行完一条指令。
当满足以上5个条件时,CPU将对中断请求进行响应。
2.中断响应的过程
如果中断响应条件满足,CPU就响应中断。中断响应过程分为以下6个步骤:(www.xing528.com)
1)保护断点。断点就是CPU响应中断时程序计数器PC的内容,它指示被中断程序的下一条指令的地址,即断点地址。CPU自动把断点地址压入堆栈,以备中断处理完毕后,自动从堆栈取出断点地址送入PC,然后返回主程序断点处,继续执行被中断的程序。
2)给出中断入口地址。程序计数器PC自动装入中断入口地址,执行相应的中断服务程序。
3)保护现场。为了使中断处理不影响主程序的运行,需要把断点处有关寄存器的内容和标志位的状态压入堆栈区进行保护。现场保护要在中断服务程序开始处通过编程实现。
4)中断服务。执行相应的中断服务程序,进行必要的处理。
5)恢复现场。在中断服务结束之后、返回主程序之前,把保存在堆栈区的现场数据从堆栈区弹出,送回原来的位置。恢复现场也需要通过编程实现。
6)中断返回。执行中断返回指令RETI,它将堆栈内保存的断点地址弹给PC,程序则恢复到中断前的位置。
3.中断的嵌套
在实际应用系统中,中断可以嵌套,即可以有多重中断。所谓多重中断,就是在CPU执行某一中断服务程序时,又有优先级更高的中断源申请中断,此时CPU应当暂停这个中断服务,而去处理优先级比它高的中断申请。处理完毕再返回原中断,继续处理较低优先级的中断。这种在低级中断中还嵌套有高级中断的多重中断方式,在实时处理系统中应用很广泛。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。