8088中断系统
8088的中断系统采用向量中断机制
能够处理256个中断
用中断向量号0 ~ 255区别
可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理
1、8088中断类型
- 内部中断(异常)
- 除法错中断:在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生一个向量号为0的内部中断,称为除法错中断
- 指令中断:在执行中断调用指令INT n时产生的一个向量号为n(0 ~ 255)的内部中断,称为指令中断
- 溢出中断:在执行溢出中断指令INTO时,若溢出标志OF为1,则产生一个向量号为4的内部中断,被称为溢出中断
- 单步中断:若单步中断TF为1,则在每条指令执行结束后产生一个向量号为1的内部中断,称为单步中断
- 外部中断(中断)
- 非屏蔽中断:
通过非屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应,这个中断被称为非屏蔽中断;
8088的非屏蔽中断的向量号为2,非屏蔽中断请求信号为NMI;
非屏蔽中断主要用于处理系统的意外或故障。 - 可屏蔽中断:
外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断;
8088的可屏蔽中断请求和响应信号分别是INTR和INTA;
由IF标志控制可屏蔽中断是否允许响应;
向量号来自外部中断控制器;
8088通常需要配合中断控制器8259A共同处理可屏蔽中断;
可屏蔽中断主要用于主机与外设交换数据。 - 中断标志IF的状态:
**IF=0:**可屏蔽中断不会被响应
关中断、禁止中断、中断屏蔽
系统复位,使IF=0
任何一个中断被响应,使IF=0
执行指令CLI,使IF=0
**IF=1:**可屏蔽中断会被响应
开中断、允许中断、中断开放
执行指令STI,使IF=1
执行指令IRET恢复原IF状态
2、8088的中断向量表
- 中断向量:中断服务程序的入口地址(首地址)
- 逻辑地址含有段地址CS和偏移地址IP(32位)
- 每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节
- 8088微处理器从物理地址000H开始,依次安排各个中断向量,向量号也从0开始
- 256个中断占用1KB区域,就形成中断向量表
向量号为N的中断向量的物理地址=N×4
以上内容参考自唐老师授课时的PPT