中断响应过程中,为什么要保护现场?如何保护?

2025-02-25 02:12:03
推荐回答(3个)
回答1:

如果在中断服务程序中要占用一些寄存器进行运算,而在主程序中这些寄存器也是很重要的,为了二者互不干扰,所以在进入中断服务程序时就要保存寄存器的数值,以便在从中断返回后继续正常的往下执行,这种保存寄存器数值的过程就是现场保护。

如在8086处理器中,当发生中断时,主程序的指令位置(CS和IP)就必须进入堆栈保存,必要时还要保存所有通用寄存器的数值。当退出中断后,恢复CS和IP以及其他寄存器的数值到和中断执行前的一样,以便程序继续执行。

回答2:

为了使子程序调用之后顺利返回主程序继续运行,调用子程序也是响应中断的一个目的,假如不保护现场,在调用完子程序之后可能无法返回主程序继续运行,轻则运行结果出错,重则程序瘫痪,保护现场一般都是使用堆栈进行保护工作,对应的命令有push 和pop ,两个命令一定要对应

回答3:

每次要保护断点,保护现场需用多条指令,每条指令要有取指和履行时间.这对个高速并中断响应,周.⑴⑵在中断要求和中断响应进程中,他们是如何配合工作的?