X86保护模式编程总结(6)

本文总结了X86保护模式中的中断和异常处理,包括可屏蔽和不可屏蔽中断、故障、自陷和中止的区别,并详细介绍了异常表、EFLAGS寄存器的RF标志、中断和自陷门的差异以及中断过程中堆栈的变化。同时讨论了多个异常和中断的优先级处理规则。
摘要由CSDN通过智能技术生成

 

中断和异常
中断:
可屏蔽中断,在CPU的INTR引脚接收的中断请求,IF=1时才允许发生可屏蔽中断
不可屏蔽中断,在CPU的NMI输入脚上接收到,CPU无法关闭不可屏蔽中断.
异常:
CPU检测的异常被分为3种:
故障,是在已被检测到异常的指令之前的指令边界上报告的异常.故障在恢复到允许指令重新启动状态时由机器报告.用于故障处理程序的返回地址指向故障的指令,而不是指会故障指令之后的指令.
自陷,自陷是在已被检测到异常指令之后紧接着的指令边界上报告的异常.
中止,中止并不总是报告引起的异常的指令位置,并且不允许引起异常的程序重新启动.中止被用来报告几种错误,例如硬件错误和在系统表中有不一致的或非法值.
由编程引发的异常.INTO,INT3,BOUND指令触发.常称为软件中断.CPU象异常一样处理它

异常和中断表
向量号    说明(实)        异常源
0(Y,故障)   除法错       DIV和IDIV指令
1     调试程序调用     任何 
2     NMI中断      不可屏蔽中断
3(N,自陷)   断点       INT指令
4(N,自陷)   溢出
5(Y,故障)   BOUND范围超出(数组范围超出) BOUND指令
6(Y,故障)   无效操作码      保留的操作码
7(Y,故障)   设备不可用      ESC或WAIT指令
8(Y,中止)   双故障       中断表限大小,在处理故障时发生另一个故障
9     (inte

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值