为什么在主程序和中断服务程序中都要安排开中断指令?

2024-12-16 08:16:03
推荐回答(2个)
回答1:

是CPU进入中断周期后自动关中断,为了让主程序和中断服务程序能够处理中断与中断嵌套都要安排开中断指令。

中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行。

CPU进入中断周期后,由中断隐指令自动将使能全局中断标志位置零,即关中断,这就意味着CPU在执行中断服务程序中禁止响应新的中断请求。CPU若想再次响应中断请求,必须开中断,这一任务通常由中断服务程序中的开中断指令实现。

扩展资料:

中断源屏蔽处理的相关技术:

当中断源被屏蔽(屏蔽触发器mask=1),此时即使完成触发器D=1,中断查询信号到来时刻只能将中断请求触发器INTR置“0”,CPU接收不到该中断源的中断请求,即它被屏蔽。

若该中断源未被屏蔽(mask=0),当设备工作已完成时(D=1),中断查询信号则将INTR置“1”,表示该中断源向CPU发出中断请求,该信号送至排队器进行优先级判断。

为了保证级别低的中断源不干扰比其级别高的中断源的中断处理过程。可采用屏蔽技术。

参考资料来源:百度百科-可屏蔽中断标志

参考资料来源:百度百科-中断嵌套

回答2:

结果就是中断不能被执行,因为中断未被允许,还有在中断程序末尾如果没开中断指令则只能执行一次中断(主程序里开的中断,一般在中断子程序中都要先关中断的)。在实现中断嵌套时中断子程序中就不要关中断标志