内中断
内中断的产生
中断情况
当COU内部有下面的情况发生的时候,将产生相应的中断信息,CPU将会马上处理中断处理程序
- 除法错误:例如执行div除法指令时产生除法溢出
- 单步执行
- 执行into指令
- 执行int指令
中断源
当发生以上的情况之一时,CPU要先知道中断信息的来源,即中断源,8086 CPU通过中断类型码来标识中断源,上述四中情况的中断源的中断类型码为:
5. 除法错误:0
6. 单步执行:1
7. 执行into指令:4
8. 执行int指令,该指令格式为int n,n为中断类型码
中断向量表
含义
- 中断向量表就是中断向量的列表
- 中断向量就是中断处理程序的入口地址
综合来讲,中断向量表就是中断处理程序入口地址列表
在内存中存储
中断向量表在内存中保存,在8086CPU中,中断向量表指定存放在内存地址0处,从内存0000:0000到0000:03FF的1024个单元中存放中断向量表,绝不可能存放在其他的内存单元
中断过程
中断过程简单描述为:
11. 取得中断类型码N
12. List item
13. pushf
14. TF=0,IF=0
15. push CS
16. push IP
17. (IP)=(N4),(CS)=(N4)+2
单步执行中断
一般情况,下当CPU执行完一条指令后,如果检测到标志寄存器的TF位为1,则产生单步中断,中断类型码为1,引发的中断过程如下:
- 取得中断码1
- 标志寄存器入栈,TF,IP设置为0
- CS,IP入栈
- (IP)=(14),(CS)=(14)+2