中断处理的详细过程

这里以IRQ0(时钟中断)为例说一下保护模式下的中断响应过程,我们假定中断响应过程中不会有错误出现,于是忽略一些检测过程:

1.当产生一个IRQ0,首先由中断屏蔽寄存器IMR中的数据(由写入的OCW1决定)判断是否响应该中断,另外还会判断EOI,如果EOI为0,也不会响应中断;

2.如果步骤1中的判断都是响应,那么中断向量号经由INTR传到CPU(这里中断向量号为20H,可通过向主8259A,端口21H写入ICW2设置IRQ0的中断向量号);

3.CPU接收到中断请求后,根据IF位判断是否响应中断,如果响应,那么CPU会将EOI置0,将IF置0;

4.CPU从中断描述符表寄存器IDTR中获取中断描述表IDT基地址,并根据中断向量号取得响应的中断门描述符(中断向量号乘以8H就是要找的描述符在IDT中的偏移,这里是20H*8H),然后从中断门描述符中取得中断处理程序的选择子和偏移,转移到中断处理程序;

5.中断处理程序返回的时候,CPU自动将IF标志置1,EOI视情况而定,本例中需要手动将其置1;

6.中断处理结束。由上可知在中断响应过程中,CPU不会响应其他的中断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值