标签:特点 err 调试 出现 软件 处理 溢出 去掉 影响
中断分类:
外部中断:
可屏蔽中断:
外部设备的中断,利用INTR通知CPU
特点:
可以通过IF位屏蔽
每一个中断源一个中断向量号
不可屏蔽中断:
一般来说这就是灾难性错误,由NMI信号线通知CPU。同时中断向量号就只有一个2
内部中断:
软中断:
由软件自己引发的中断,不受IF位影响
方法:
int 8位立即数,256种中断
int3调试断点指令,触发三号中断,就是一般的调试(其实用户在调试的时候看到的寄存器和变量就是通过中断的保护现场的栈来的)
into 中断溢出指令,向量号为4,看OF是否为1
bound 16/32位寄存器,16/32位内存 看寄存器内容是否在数组上下界,否则触发5号中断
ud2 触发6号中断,无实际用途
异常:
运行时错误,不受IF位的影响
分类:
Fault:故障,可以被修复的类型。执行完后的返回地址仍然是那条故障指令
Trap:调试中常用,指向下一条指令
Abort:最严重的异常类型,一旦出现错误无法修复,只能将程序从进程表中去掉
说明:有些异常会有单独的错误码,erro_code,进入中断CPU会把它们压入栈中,这是在压入EIP后做的
注意:
中断处理程序一般分为上半部分和下半部分,上半部分是需要立即执行的部分,所以IF位要清零,下半部分是不急的,这部分同样可以被中断
标签:特点 err 调试 出现 软件 处理 溢出 去掉 影响
原文地址:https://www.cnblogs.com/TherLF/p/14843317.html