《计算机组成原理与汇编语言》第7章 输入输出系统-中断.ppt
文本预览下载声明
第一节 中断的基本概念 第二节 8086CPU的中断系统 第三节 可编程中断控制器8259A 第四节 中断程序设计 第一节 中断的基本概念 一、什么是中断 二、中断源和中断优先权 三、中断服务程序 四、断点和中断现场 五、硬件中断和软件中断 六、其他概念 一、什么是中断 在CPU正常运行程序时, 由于内部或外部某个非预料事件的发生, 使CPU暂停正在运行的程序, 而转去执行处理引起中断事件的程序, 然后再返回被中断了的程序,继续执行。 这个过程就是中断。 二、中断源和中断优先权 引起中断的因素很多, 将发出中断申请的外设或内部原因,称为中断源 给每个中断源指定一个优先权,称为中断优先权 当多个中断源同时发出中断请求时, CPU按照中断优先权的高低顺序,依次响应。 三、中断服务程序 处理中断源,完成其所要求功能的程序, 称中断服务程序(中断例行程序、中断子程)。 四、断点和中断现场 断点:是指CPU执行的现行程序被中断时的下一条指令的地址,又称断点地址。 中断现场:指CPU转去执行中断服务程序前的运行状态,包括CPU内部各寄存器、断点地址等。 早期中断概念的引入, 是为解决CPU与外设间的速度匹配问题, 提高CPU 的工作效率。 中断源主要是由外部硬件产生。 当今的中断技术, 不再限于外部硬件产生中断(称硬件中断或外中断 ), 还可由CPU内部产生 (如被零除操作), 或者由程序预先安排,即由指令调用中断服务程序。 (称软件中断或内中断) 第二节 8086CPU的中断系统 一、8086CPU的中断分类 二、8086CPU的中断优先权 三、8086CPU响应中断的过程 四、8086CPU如何获取中断类型号 一、 8086CPU的中断分类 1、内中断(软中断) 指CPU执行某些特殊操作或由INT指令引起的中断 ① 被零除操作或OF=1时执行INTO指令引起 ② 使用DEBUG中的单步或断点设置操作引起 ③ 执行INTn 指令引起 指外部芯片通过 CPU的INTR引脚或NMI引脚 发出中断申请引起的中断。 当INTR上有高电平信号 当NMI上有上升沿信号 三、8086CPU响应中断的过程 当中断源产生中断申请后, 不论是内中断、非屏蔽中断,还是可屏蔽中断, 只要满足响应条件,在执行完当前指令后, CPU内部硬件会自动完成下列响应中断的过程: 四、8086CPU如何获取中断类型号 由前面介绍知,当中断源产生中断请求后, 不论是内中断、非屏蔽中断,还是可屏蔽中断, 只要满足响应条件,在执行完当前指令后, CPU内部硬件会自动完成响应中断的过程,共七个步骤 而第一步就是获取中断类型号。 第三节 可编程中断控制器8259A(参考内容不要求) 一、引言 二、8259A的引脚、编程结构和工作过程 三、8259A的编程 1. 设置中断屏蔽字 2. 发中断结束命令EOI 四、8259A在IBM PC/XT系统中的应用 五、 8259A在 Pentium机中的应用 一、引言 1. 向CPU的引脚INTR发中断申请信号 当有多个外设同时发出中断请求时, 能按照一定的优先级顺序,向CPU发出中断申请, 使CPU能优先响应优先级最高的外部设备的中断申请。 2. 送中断类型号 在CPU中断响应周期,针对不同外设的中断请求, 向CPU传送不同的中断类型号, 使CPU执行相应的中断子程。 分两步: (1)处理外设中断申请,决定是否向CPU发中断申请信号。(2)若发中断申请信号,且CPU响应, 则在CPU中断响应周期送出中断类型号。 CPU接收到 INTR上的中断申请信号后: 如果 IF 标志为0,则CPU不响应此中断申请信号, 即中断申请被IF屏蔽。 如果 IF 标志为1, 则处理完当前的指令后, 进入中断响应周期 通过 INTA 引脚发出两个负脉冲信号, 从数据总线上获取中断类型号, 进入中断响应的过程。 三、8259A的编程 (1)通过中断屏蔽寄存器IMR的读写,设置中断屏蔽字 (2) 通过OCW2操作命令寄存器,发中断结束EOI命令 通过往寄地址端口写入IMR内容实现 对应位为0,允许该级中断申请进入 对应位为1,禁止该级中断申请进入 由 8259A 的工作过程可知: ISR中的内容是优先级裁决器进行裁决的重要依据 CPU响应某级中断后,8259A自动将ISR的对应位置1,如果CPU已执行完中断子程,而ISR中的对应位仍为1, 8259A的优先级裁决器仍会据ISR的内容做裁决, 从而会屏蔽同级或低级的中断申请。 在中断响应后,对 I
显示全部