微机原理与接口技术第七章.ppt_第1页
微机原理与接口技术第七章.ppt_第2页
微机原理与接口技术第七章.ppt_第3页
微机原理与接口技术第七章.ppt_第4页
微机原理与接口技术第七章.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第一节 中断的基本概念 一、什么是中断 二、中断源和中断优先权 三、中断服务程序 四、断点和中断现场 五、硬件中断和软件中断 第二节 8088CPU的中断系统 一、8088CPU的中断分类 二、8088CPU的中断优先权 三、8088CPU响应中断的过程 四、8088CPU如何获取中断类型号,第三节 可编程中断控制器8259A 一、引言 二、8259A的引脚、编程结构和工作过程 三、8259A的编程 1设置中断屏蔽字 2发中断结束命令EOI 四、8259A在IBM PC/XT系统中的应用 五、 8259A在 Pentium机中的应用 第四节 中断程序设计 一、中断向量的保存、设置和恢复 二、软中断程序设计 三、可屏蔽硬中断程序设计 四、问题讨论 1.中断嵌套问题 2.中断向量的保存、恢复问题,第七章 中断技术,2,听课思考,1、中断类型,3、内部(软)和外部(硬)中断类型号怎样取得?,2、内部(软)和外部(硬)中断执行过程不同点与 相同点;,4、CPU在响应中断自动完成哪几件事?,5、中断向量如何设置?,6、从外设的中断请求到CPU响应中断,有哪两个控制条件?,7、每次硬中断结束后为什么要发中断结束命令字?软中断需 要吗?,8、屏蔽字的作用是什么?,3,第七章 中断技术,第一节 中断的基本概念 第二节 8088CPU的中断系统 第三节 可编程中断控制器8259A 第四节 中断程序设计,4,第一节 中断的基本概念,一、什么是中断 二、中断源和中断优先权 三、中断服务程序 四、断点和中断现场 五、硬件中断和软件中断,5,一、什么是中断,在CPU正常运行程序时, 由于内部或外部某个非预料事件的发生, 使CPU暂停正在运行的程序, 而转去执行处理引起中断事件的程序, 然后再返回被中断了的程序,继续执行。 这个过程就是中断。,6,CPU执行流程,7,二、中断源和中断优先权,引起中断的因素很多, 将发出中断申请的外设或内部原因,称为中断源 给每个中断源指定一个优先权,称为中断优先权 当多个中断源同时发出中断请求时, CPU按照中断优先权的高低顺序,依次响应。,8,三、中断服务程序,处理中断源,完成其所要求功能的程序, 称中断服务程序(中断例行程序、中断子程)。,9,非预料事件是指事件发生的时间无法预知, 即中断源何时产生中断不确定,是随机的。 但事件的性质及处理方法则是已知的, 确定的, 即中断服务程序是事先编写好的, 只是何时执行未知。,中断源产生中断的随机性, 使中断服务程序的执行也具有随机性, 即何时执行中断服务程序不是在程序中安排好的。,10,四、断点和中断现场,断点: 是指CPU执行的现行程序被中断时的下一条指令的地址,又称断点地址。 中断现场: 是指CPU转去执行中断服务程序前的运行状态, 包括CPU内部各寄存器、断点地址等。,11,1000:150H,、 、 、 、 、 MOV AX, 0 ADD AX, DX MOV DI , AX 、 、 、 、 、 PUSH AX 、 、 IRET,CPU在执行此指令时, 某中断源发申请中断; CPU在执行完该指令后, 转去执行中断子程,地址1000:150H为断点,断点概念:,12,13,1000:150H,、 、 、 、 、 MOV AH, 01 INT 21H CMP AL, 0Dh 、 、 、 、 、 PUSH AX 、 、 IRET,用指令调用中断程序,软件中断 用指令 调用中断程序,14,第二节 8088CPU的中断系统,一、8088CPU的中断分类 二、8088CPU的中断优先权 三、8088CPU响应中断的过程 四、8088CPU如何获取中断类型号,15,1、内中断(软中断) 指CPU执行某些特殊操作或由INT指令引起的中断 被零除操作或OF=1时执行INTO指令引起 使用DEBUG中的单步或断点设置操作引起 执行INTn 指令引起,16,17,可屏蔽中断 由INTR引脚引起的中断,称可屏蔽中断。 CPU是否响应INTR引脚上的中断请求取决于IF标志: IF=1,CPU响应INTR引脚上的中断请求 IF=0,CPU不响应INTR引脚上的中断请求 即当IF=0时,将INTR引脚上的中断申请屏蔽。,非屏蔽中断 由NMI引脚引起的中断,称非屏蔽中断。 当NMI引脚上产生上升沿信号,CPU必响应此中断请求,即NMI引脚上的中断请求不受IF标志的控制, IF不能屏蔽NMI引脚上的中断请求。,但在系统通电瞬间或屏蔽寄存器最高位置“0”可屏蔽NMI。将最高位置“1”又可以开放NMI。 MOV DX,A0H;A0HBFH为屏蔽寄存器 MOV DX,A0H MOV AL,00H MOV AL,80H OUT DX,AL;屏蔽NMI OUT DX,AL;开放NMI,18,保留(ALT打印机),19,20,三、8088CPU响应中断的过程,当中断源产生中断申请(INTR)后, 不论是内中断、非屏蔽中断,还是可屏蔽中断, 只要满足响应条件,在执行完当前指令后,响应中断,给出INTA CPU内部硬件会自动完成下列响应中断的过程:, 取中断类型号N 当前PSW的内容入栈 清IF、TF标志为0 当前CS的内容入栈 当前IP的内容入栈 取内存单元( 0 : N 4 )字内容送IP 取内存单元( 0 : N 4 + 2 )字内容送CS 此时, CPU中的指令地址寄存器CS:IP指向中断程序的入口,在下一个总线周期,开始执行中断程序。,保存现场,中断服务程序入口地址,21,当前指令执行完的含义,CPU正在执行一条指令,执行完本条指令,响应中断;,对于带重复前缀的串指令(如REP MOVSB),执行一次,重复和串指令即可响应中断;,对MOV和POP指令,处理对象为段寄存器,,以及STI和IRET指令执行完本条指令后,,再执行一条指令才响应中断。,22,0:3FFH,0:0,23,从中断子程返回断点处, 靠的是执行中断子程最后的指令IRET, 从堆栈中取出断点地址给CS:IP, 继续执行被中断的程序。 故中断子程最后应安排 IRET 指令。,24,四、8088CPU如何获取中断类型号,由前面介绍知,当中断源产生中断请求后, 不论是内中断、非屏蔽中断,还是可屏蔽中断, 只要满足响应条件,在执行完当前指令后, CPU内部硬件会自动完成响应中断的过程,共七个步骤 而第一步就是获取中断类型号。,不同的中断源,8088CPU获取中断类型号的方法不同。,25,根据8088CPU对中断的分类,各中断获取类型号的方法,26,中断响应周期时序,27,28,一、引言,29,1. 向CPU的引脚INTR发中断申请信号 当有多个外设同时发出中断请求时, 能按照一定的优先级顺序,向CPU发出中断申请, 使CPU能优先响应优先级最高的外部设备的中断申请。 2. 送中断类型号 在CPU中断响应周期,针对不同外设的中断请求, 向CPU传送不同的中断类型号, 使CPU执行相应的中断子程。,中断申请管理接口的主要功能:,在IBM PC机由8259A可编程中断控制器(PIC)来完成。,30,31,定时器,32,28259A的编程结构(参看教材图6-36),33,34,(1) 初始化命令字(ICW1- ICW4) 决定8259A的工作方式 通常是在计算机系统启动时在初始程序设置, 一旦设定,一般在系统工作过程不再改变。 例 开机后,BIOS将8259A初始化为: IR0IR7中断申请信号为上升沿触发方式; IR0IR7对应的中断类型号分别为08H0FH; 优先级IR0最高, IR7最低; (2) 操作命令字(OCW1,OCW2,OCW3) 在应用程序中设定,动态地控制CPU处理中断的过程 (3) ISR和IRR存放当前8259A的状态 通过读取 ISR 和 IRR 的内容,可了解当前8259A工作情况,35,36,(1) 处理外设中断申请,决定是否向CPU发中断申请信号,37, 中断申请寄存器IRR 锁存外部的中断申请。 若 IR0IR7 引脚上有中断申请,则将 IRR 相应位置1,38,39,40,41,(2) 若发中断申请信号,且CPU响应, 则在CPU中断响应周期送出中断类型号,42,8088CPU中断响应周期时序,43, 将 ISR 中相应位置1, 表示 CPU 响应此级中断,执行此中断源的中断子程。,8259A在接收到第一个INTA中断响应信号后:,0 0 1 0 0 0 0 0,ISR 当前 中断 服务 寄存器,IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7,PR 优先级 裁决器,IRR 中断 申请 寄存器,1 0 0 0 0 0 0 1,ICW1 芯片控制,ICW2 中断类型号,ICW3 主从片关系,ICW4 方式控制,OCW1 中断屏蔽寄存器 IMR,OCW2 优先级、发EOI,OCW3 特殊屏蔽设置,IOR,IOW,总线,数 据 线,D0 D7,INTA,A0,片 选 译 码,A5 A9,CS,A0,RD,WR,INTA,INT,D0 D7,INTR, 把 IRR中对应的位清0,清除IRR中锁存的中断申请信号。,44, 通过数据线,将被响应申请的中断类型号送给CPU。 类型号由ICW2提供,在初始化8259A时已设定好。, CPU获得中断类型号后,进入CPU响应中断的过程, 执行中断子程,处理中断源申请的功能。,45,46,三、8259A的编程,1. 8259A的编程 2. 8259A的编程方法 (1) 设置中断屏蔽字 (2) 发中断结束命令EOI,47,48,49,50,51,新增允许 IR2 的中断申请 IN AL, 21H ;读入原IMR的内容 AND AL, 1111 1011B ;D2=0,允许IR2的中断申请 OUT 21H, AL ;写入IMR,禁止 IR4 的中断申请 IN AL, 21H ;读入原IMR的内容 OR AL, 0001 0000B ;D4=1,禁止IR4的中断申请 OUT 21H, AL ;写入IMR,例 已知 IBM PC/XT系统中 8259A的奇地址端口地址为21H,52,53,54,55,一、 初始化8259A时,设置8259A工作方式为自动清0方式, 则在CPU响应中断后,硬件自动将ISR的对应位清0。,清 ISR 内容的方法有两种:,二、 初始化8259A时,设置8259A工作方式为非自动清0方式, 需在中断子程中,通过软件方式清0。,方法是:通过往OCW2写入20H实现,即由偶地址端口写入:,56,编程在中断子程 IRET 返回前,发中断结束命令EOI,例 已知 IBM PC系统中, 8259A的偶地址端口地址为 20H; BIOS 初始化 8259A 时,设置 8259A 工作方式为非自动清 0 方式。,intsub PROC 、 、 、 MOV AL, 20H ;将中断结束命令字20H 送AL OUT 20H, AL ;写入OCW2中 IRET ;中断返回 intsub ENDP,57,58,59,60,61,62,63,64,65,五、 8259A在Pentium机上的应用,1. 连线 2. 可屏蔽中断类型分配,66,67,要点: 1. 中断系统由两片8259A ,一个中断路由器构成, 集成在芯片组中 2. 从8259A的中断申请与主8259A的IRQ2相连 ISA总线上有6个中断申请,其中IRQ2连至从8259A的IRQ9 系统软件上,将IRQ9的中断向量指向IRQ2的中断向量 3. 主8259A的端口地址为: 20H, 21H 8个对应的中断申请IRQ7IRQ0类型号为0Fh08h 从8259A的端口地址为: A0H, A1H 8个对应的中断申请IRQ15IRQ8类型号为77h70h 4. 中断路由器(Interrupt Router) : 动态分配PCI上的中断申请到8259A中未被占用的中断上。,68,2. Pentium机中的可屏蔽中断类型分配,中断申请引脚 IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ8 IRQ9 IRQ10 I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论