中断和异常:
中断通常分为同步中断和异步中断。
同步中断:当指令执行时由CPU控制单元产生的,称为同步,是因为只有当一条指令终止执行后CPU才会发出中断。
异步中断:由其他硬件设备依照CPU时钟信号随机产生的。
在inter微处理器手册上,将同步中断称为异常;将异步中断称为中断。
异常和中断向量:
每个需要被处理器进行特殊处理的中断和异常都被赋予了一个中断向量,该向量用作中断描述符表IDT的索引值,来定位一个异常和中断的处理程序的入口地址。
中断向量号的范围为0~256,其中0~31保留用作80X86处理器定义的异常和中断,32~255的向量号用于用户定义的中断。
异常和中断源:
中断源:
1. 外部中断(硬件中断)
2. 软件中断
硬件中断通过处理器芯片上的INTR和NMI引脚接收。
软件中断通过执行指令INT触发。
EFLAGS中的IF位不能够影响软件中断。
异常源:
1. 处理器检测到程序异常
2. 软件产生的异常
异常的分类与处理:
异常被细分为故障、陷阱和终止。
1. 故障异常发生后程序仍然可以继续执行。故障异常发生后,处理器会把把引起故障异常的指令执行之前的状态恢复,执行完故障处理子程序后,处理器重新执行引起故障的指令。如页面故障。
2. 陷阱异常是一个引起陷阱的指令被执行后立刻会报告的异常。陷阱异常处理子程序的返回地址执行引起异常的指令的下一条指令。
3. 终止异常是一种不会报告导致异常指令的精确位置的异常。并且不允许导致异常的程序重新执行,用于报告严重的错误。