在PC机中,CPU响应中断后是如何找到中断服务子程序入口地址的?

在PC机中,CPU响应中断后是如何找到中断服务子程序入口地址的?,第1张

cpu在响应中断前会保护主程序当前指令下面的一条指令的地址。就是将当前的IP和CS的内容入堆栈。cpu响应中断之后,将指令地址从堆栈中取出即可找到中断服务子程序入口地址。

CPU响应中断做如下动作:

①将中断类型码放入暂存器保存;

②将标志寄存器内容压入堆栈,以保护中断时的状态;

③将IF和TF标志清0,目的是防止在中断响应的同时又来别的中断,而将TF清0是为了防止CPU以单步方式执行中断处理子程序。这时要特别提醒,因为CPU在中断响应时自动关闭了IF标志,因此用户如要进行中断嵌套时,必须在自己的中断处理子程序中用开中断指令来重新设置IF;

④保护断点,断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。因此保护断点的动作就是将当前的IP和CS的内容入栈,保护断点是为了以后正确地返回主程序;

⑤根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,即呆自动转向中断服务子程序。

最近复习 *** 作系统和组成原理也遇到了这个问题,经过多方资料查询,得到如下解释:在中断发生时,往往会先由中断隐指令保存程序断点,也就是pc(或pc+psw)里的内容(x86机器中psw的内容依然由隐指令即硬件保存,因为中断服务程序可能会改变它的内容,MIPS中无psw,故只保存pc),这完全是由硬件实现的,然后需要调用中断服务程序保存通用寄存器和中断屏蔽字的内容,它由 *** 作系统负责完成,运行在管态。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11985465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存