8088中断系统

8088的中断系统采用向量中断机制
能够处理256个中断
 用中断向量号0 ~ 255区别
 可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理

1、8088中断类型

8088bios原代码 8088系统_可屏蔽中断

  1. 内部中断(异常)
  • 除法错中断:在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生一个向量号为0的内部中断,称为除法错中断
  • 指令中断:在执行中断调用指令INT n时产生的一个向量号为n(0 ~ 255)的内部中断,称为指令中断
  • 溢出中断:在执行溢出中断指令INTO时,若溢出标志OF为1,则产生一个向量号为4的内部中断,被称为溢出中断
  • 单步中断:若单步中断TF为1,则在每条指令执行结束后产生一个向量号为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