硬件中断分为可屏蔽中断INTR和非屏蔽中断NMI
cpu响应中断的条件
(1)cpu开放中断 IF=1(开放),IF=0(关闭中断)
(2)cpu在现行指令结束后响应中断
中断处理步骤
(1)中断请求:中断源向CPU发出中断请求
(2)中断响应
(3)保护断点和现场:以便在中断服务程序执行后正确的返回主程序。
(4)中断处理
(5)中断返回
8086中断处理步骤
(1)内部中断以及NMI中断不需要从数据总线上读取中断类型码,而INTR需要,而且该中断类型码由发出中断请求的接口电路提供。
(2)CPU得到中断类型码后将标志寄存器内容压入栈中(PUSHF),保护中断时标志位的状态。
(3)令单步标志TF =0(禁止CPU以单步方式执行中断服务程序)。
(4)令中断允许标志IF=0(即:在响应该中断后不再响应别的中断。由于CPU在中断响应时,自动将IF置为0,如果要允许中断嵌套,必须在后面的中断服务程序中用开中断指令STI重新将IF置为1)
(6)将当前CS:IP入栈,即保护断点和现场。
(7)根据中断类型码在中断向量表中找到相应中断服务程序的入口地址,将其装入CS:IP,转向中断服务程序。
(8)为了保证NMI中弄断有着实质性的优先级,所以在执行中断服务之前需要再次检查是否有NMI中断。
(9)执行中断服务程序。
(10)即恢复断点并返回到主程序。
————————————————
版权声明:本文为CSDN博主「小宋加油啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45560230/article/details/111681074