内中断不受if和tf标志的影响对吗

内中断不受if和tf标志的影响对吗,第1张

错误,内中断受if和tf标志的影败颤响。

内部中断是指因硬件出错(如突然掉电、奇偶校验错误)族枯帆或运算出错(除数为0,运算溢出,单步中断)所引起的中断。

CPU为了处理并发的中断请求,规定了中断的优先权,中断优先权由高到低的顺序:

除法出错,溢出中断,软件中断

不可屏蔽中断

可屏蔽中断

单步中断

中断处理程序

中断处理程序必须一直存储在内存某段空间中。

中断处理程序的入口地址(中断向量)必须存兆雹储在对应的中断向量表表项中。

步骤:

保存用到的寄存器

处理中断

恢复用到的寄存器

用iret指令返回

在响应某个中断过程初始阶段:

将中断允许标志位IF清竖并零,作用是禁止新的岩旁可屏蔽中断;

将单步中断标志位TF清零,作用是禁止新单步中断;

否则,本次中粗纤橡断响应会被新的中断扰乱。

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

cpu响应中断做如下动作:

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

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

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

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

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存