中断处理过程

中断全过程指的是从中断源发出中断请求开始,CPU响应这个请求,现行程序被中断,转至中断服务程序,直到中断服务程序执行完毕,CPU再返回原来的程序继续执行的整个过程。

步骤

  1. 请求中断→响应中断→关闭中断
  2. 保留断点
  3. 引出中断服务程序
  4. 保护现场
  5. 开启中断
  6. 执行中断服务程序
  7. 关闭中断
  8. 恢复现场
  9. 打开中断
  10. 中断返回

 2.保存断点:保证中断程序执行完能够回来继续执行后面的程序,其实保存的是程序计数器

3.引出中断服务程序:其实就是读取我们要执行的程序的地址,以便一会去执行

4.保存现场:保存寄存器中的数据,以便回来执行的时候恢复数据。为使中断处理程序不破坏主程序中寄存器的内容,应先将断点处各寄存器的内容压入堆栈保护起来,再进入的中断处理。

开中断和关中断:加锁

  • 将CPU不响应更高级中断请求

  • 在进入中断服务程序时, CPU已经自动禁止了本CPU上的中断响应,因为CPU不能假定中断服务程序是可重入的。

  • 如果在保存寄存器值时被中断了,那么另外的操作很可能就把寄存器改写了,现场无法恢复

10.中断返回

在中断服务子程序的最后要安排一条中断返回指令IRET,执行该指令,系统自动将堆栈内保存的IP/EIP和CS值弹出,从而恢复主程序断点处的地址值,同时还自动恢复标志寄存器FR或EFR的内容,使CPU转到被中断的程序中继续执行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过街的老鼠

感谢你对诗仙女的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值