如果中断由用户程序自行处理,为何需要将被中断程序的断点由系统堆栈弹出并压入用堆栈

1个回答
展开全部
咨询记录 · 回答于2022-06-24
如果中断由用户程序自行处理,为何需要将被中断程序的断点由系统堆栈弹出并压入用堆栈
亲,您好,很高兴为您解答:如果中断由用户程序自行处理,为何需要将被中断程序的断点由系统堆栈弹出并压入用堆栈如下:1)将中断类型码放入暂存器保存;2)将标志寄存器内容压入堆栈,以保护中断时的状态;3)将IF和TF标志清0。目的是防止在中断响应的同时又来别的中断,而将TF清0是为了防止CPU以单步方式执行中断处理子程序。这时要特别提醒,因为CPU在中断响应时自动关闭了IF标志,因此用户如要进行中断嵌套时,必须在自己的中断处理子程序中用开中断指令来重新设置IF;4)保护断点。断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。保护断点就是将当前的IP和CS的内容入栈,为了以后正确地返回主程序;5)根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,即呆自动转向中断服务子程序。
已赞过
你对这个回答的评价是?
评论 收起
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消