中断系统8259A

中断相关定义

CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时停止正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。
(嗐,啰里啰唆一大堆,没意思,其实道理很简单)

  • 中断:解决CPU与外设间速度方面存在的差异,处理来自内部的异常故障
  • 中断系统:中断系统是指实现中断功能的软硬件的统称
  • 中断源:发出中断请求的外部设备或引起中断的内部原因或引起CPU中断的事件称为中断源
  • 中断向量:存放各类中断的中断服务程序的入口地址(段和偏移)

中断源

在这里插入图片描述
中断源分为:外部中断、内部中断

内部中断

内部中断:CPU内部执行程序时自身产生的中断

  • 除法溢出:类型号0,若除数为0或商超过了寄存器所能表达的范围。
  • 单步中断:类型号1,TF=1时产生(当前指令需执行完)
  • 断点中断:类型号3,软件中断,即INT 3指令。(哇,这个太有名了,直到现在你还会看到这个指令的身影,烫烫烫烫烫烫烫烫烫烫烫)
  • 溢出中断:类型号4,软件中断,即INTO指令。(若溢出标志OF为1,则产生一个向量号为4的内部中断)
  • 软件中断:即INT n指令,产生的一个向量号为n(0 ~ 255)的内部中断,其中INT 3,常用于程序调试(见上)

特点:中断由CPU内部引起,中断类型号的获得与外部无关,CPU不需要执行中断响应周期去获得除单步中断外,内部中断无法用软件禁止,不受中断允许标志IF的影响

外部中断

外部中断:CPU以外的设备、部件产生的中断:INTRNMI

  • INTR:
    可屏蔽中断请求,高电平有效,类型号由PIC提供。受IF标志的控制,IF=1时,执行完当前指令后CPU对它作出响应。两个连续的中断响应总线周期:分别是INTR(中断请求)和INTA(中断应答)。
  • NMI:
    非屏蔽中断请求,类型号2上升沿有效任何时候CPU都要响应此中断请求信号,没有中断响应周期。

特点:非屏蔽中断不受IF标志的影响,也不用外部接口给出中断类型号,CPU响应NMI中断时也没有中断响应周期。可屏蔽中断当INTR信号有效时,如果中断允许标志IF=1,则CPU就在当前指令执行完毕后,产生两个连续的中断响应总线周期,获得中断类型号,并执行相应中断程序。

中断设置

中断标志IF的状态

  • IF=0:可屏蔽中断不会被响应

系统复位,任何一个中断被响应,执行指令CLI,都会使IF=0

  • IF=1:可屏蔽中断会被响应

执行指令STI,使IF=1

中断过程

五个步骤

  • 中断请求
  • 中断判优(有时还要进行中断源识别)
  • 中断响应
  • 中断处理
  • 中断返回

当然不同的中断类型有不同的响应过程

在这里插入图片描述

中断请求

对于外部中断:
外设接口(中断源)发出中断请求信号,送到CPU的INTRNMI引脚。

  • 中断请求信号:NMI为边沿请求,INTR为电平请求
  • 中断请求信号应保持到中断被处理为止。
  • CPU响应中断后,中断请求信号应及时撤销。
  • 在完整的8086系统中,外设的中断要经过可编程中断控制器PIC(8259A)的排队判优后向CPU发出

对于内部中断:
就是中断指令或者一些hardfault类似的错误。

中断源识别

  • 软件查询。将中断信号从数据总线读入,用程序进行判别(???)

  • 中断矢量法。由中断源提供中断类型号,CPU根据类型确定中断源。(8086即采用此种方法)

    • 每个中断源都有一个与它相对应的中断类型码。
    • 内部中断、软中断的类型码由指令或固定给出
    • =可屏蔽中断的类型码由PIC(可编程中断控制器)给出==
    • CPU响应INTR中断时,会产生两个中断响应总线周期,PIC会在第2个总线周期把中断类型码放到数据总线上,供CPU读入。
      在这里插入图片描述

中断判优

在这里插入图片描述

• 中断优先级控制要处理两种情况:

  • 对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理(响应优先级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值