用软件寻找中断服务程序入口地址的方法称为软件查询法。当查到某一中断源有中断请求时,接着安排一条转移指令,直接指向此中断源的中断服务程序入口地址,机器便能自动进入中断处理。
这种方法不涉及硬件设备,但查询时间较长
8.4.4 中断响应中断响应的条件当EINT=1,且有中断请求(即中断请求标记触发器INTR=1)时,CPU可以响应中断。
响应中断的时间之所以CPU在指令的执行周期后进入中断周期,是因为CPU在执行周期的结束时,统一向所有中断源发出中断查询信号,只有此时CPU才能获知哪个中断源有请求。
可在指令执行过程中设置若干个查询断点,CPU在每个“查询断点”时刻均发中断查询信号,以便发现有中断请求,CPU便可及时响应。
中断隐指令1. 保护程序断点保护程序断点就是要将当前程序程序计数器PC的内容保存到存储器中。它可以存在存储器的特定单元内,也可以存入堆栈。
2. 寻找中断服务程序的入口地址由于中断周期结束后进入下条指令(即中断服务程序的第一条指令)的取指周期,因此在中断周期内必须设法找到中断服务程序的入口地址。
有两种方法寻找入口地址:
- 在中断周期内,将向量地址送至PC(对应硬件向量法),使CPU执行下一条无条件转移执行,转至中断服务程序入口地址。
- 在中断周期内,将软件查询入口地址的程序(又称中断识别程序)首地址送至PC,使CPU执行中断识别程序,找到入口地址(对应软件查询法)。
CPU进入中断周期,意味着CPU响应了某个中断源的请求,为了确保CPU响应后所需做的一系列操作不至于又受到新的中断请求的干扰,在中断周期内必须自动关中断,以禁止CPU再次响应中断请求。
当进入中断周期时,INT为“1”状态,触发器原端输出有一个正跳变,经反相后产生一个负跳变,使EINT置“0”,即关中断。
一般只有在多重中断中才会有关中断指令
保护断点、寻找入口地址和关中断这些操作都是在中断周期内由一条中断隐指令完成的。
中断隐指令:即在机器指令系统中没有的指令,它是CPU 在中断周期内由硬件自动完成的一条指令。
8.4.5 保护现场和恢复现场保护现场:应该包括保护程序断点和保护CPU内部各寄存器内容的现场两个方面。程序断点的现场由中断隐指令完成,各寄存器内的现场可在中断服务程序中由用户(或系统)用机器指令编程实现。
恢复现场:是指在中断返回前,必须将寄存器的内容回复到中断处理前的状态,这部分工作也由中断服务程序完成。
8.4.6 多重中断多重中断的概念当CPU正在执行某个中断服务程序时,另一个中断源又提出了新的中断请求,而CPU又响应了这个中断请求,暂时停止正在运行的服务程序,转去执行新的中断服务程序,这称为多重中断,又称为中断嵌套