一、中断
1.中断系统的好处
- 同步操作(大部分时间,CPU和外设都可以同时处于工作状态,因此叫同步)
- 实时处理(只要外设发出中断请求,CPU就能立即响应处理)
- 故障处理(当出现异常或者故障的时候可以发出中断,请求处理)
2.中断处理过程
- 中断申请
- 保护断点(保存下一条要执行的指令的地址)
- 保护现场(备份各个寄存器(包括标志寄存器)的当前值)
- 识别中断源(识别后获得中断服务程序的入口地址,然后跳转到的中断服务程序)
- 中断处理(执行中断服务程序)
- 中断返回(先恢复现场,再返回断点)
3.中断系统
中断系统是指为实现中断而设置的软件和硬件的结合,包括中断控制逻辑、中断管理及相应的中断指令。中断系统通常具有的功能:
- 进入中断和退出中断的能力
- 屏蔽中断的能力
- 安排中断优先级的能力
- 中断嵌套的能力
4.中断分类
中断可以分为两类:硬件中断和软件中断
(1)硬件中断:
- 非屏蔽中断:中断类型号为2。不受中断允许触发器IF状态的影响,即不能屏蔽。
当NMI线接收到两个时钟周期以上的上跳边沿触发的中断信号之后,就能再处理好当前的指令之后立马进入非屏蔽中断的服务程序 - 可屏蔽中断:由INTER线触发,受中断允许触发器IF状态的影响,即可以屏蔽。 使用指令CLI(IF=0)来屏蔽,使用指令STI(IF=1)来允许
出现在INTER线上的中断请求信号(即有效的高电平)必须保持到当前指令执行结束为止。
CPU接收到后进入连续两个中断响应周期,并都给中断源发出中断响应信号,要求中断源在第二个中断响应周期的T3状态前,将中断类型号送到CPU的数据线上
(2)软件中断 - 除法错中断:中断类型号为0
- 单步中断:中断类型号为1
- 断点中断:中断类型号为3
- 溢出中断:中断类型号为4
- 中断指令INT n引起的中断:中断类型号为n
5.中断优先权
从高到低依次为:
- 除法错、溢出中断指令INTO、中断指令INT n
- 非屏蔽中断NMI
- 可屏蔽中断INTR
- 单步中断
6.中断向量和中断向量表
中断向量 就是各个中断类型号对应的中断服务程序的入口地址,由(段地址:偏移地址)组成,段地址和偏移地址各占两个字节,故一个中断向量就占用4个字节。
8086CPU一共提供256个中断,因此一共需要256*4个字节,即1KB。
中断向量表 8086CPU在内存空间开辟了000H~03FFH一共1KB的空间用于存放中断向量,这段内存就是我们的中断向量表,表中存放的是各个中断类型号对应的中断服务程序入口地址