资源预览内容
第1页 / 共69页
第2页 / 共69页
第3页 / 共69页
第4页 / 共69页
第5页 / 共69页
第6页 / 共69页
第7页 / 共69页
第8页 / 共69页
第9页 / 共69页
第10页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第一节 中断的基本概念一、什么是中断二、中断源和中断优先权三、中断服务程序四、断点和中断现场五、硬件中断和软件中断第二节 8088CPU的中断系统一、8088CPU的中断分类二、8088CPU的中断优先权三、8088CPU响应中断的过 程四、8088CPU如何获取中断 类型号第三节 可编程中断控制器8259A一、引言二、8259A的引脚、编程结构 和工作过程三、8259A的编程1设置中断屏蔽字2发中断结束命令 EOI四、8259A在IBM PC/XT系统 中的应用五、 8259A在 Pentium机中的 应用第四节 中断程序设计一、中断向量的保存、设置和 恢复二、软中断程序设计三、可屏蔽硬中断程序设计四、问题讨论1.中断嵌套问题2.中断向量的保存、 恢复问题第七章 中断技术1听课思考1、中断类型3、内部(软)和外部(硬)中断类型号怎样取得 ?2、内部(软)和外部(硬)中断执行过程不同点与 相同点;4、CPU在响应中断自动完成哪几件事? 5、中断向量如何设置?6、从外设的中断请求到CPU响应中断,有哪两个控制条件?7、每次硬中断结束后为什么要发中断结束命令字?软中断需要吗?8、屏蔽字的作用是什么?2第七章 中断技术第一节 中断的基本概念第二节 8088CPU的中断系统第三节 可编程中断控制器8259A第四节 中断程序设计3第一节 中断的基本概念一、什么是中断二、中断源和中断优先权三、中断服务程序四、断点和中断现场五、硬件中断和软件中断4一、什么是中断在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。5中断服务程序1中断服务程序 2非预料事件1CPU执行流程非预料事件 26二、中断源和中断优先权q 引起中断的因素很多,将发出中断申请的外设或内部原因,称为中断源q 给每个中断源指定一个优先权,称为中断优先权q 当多个中断源同时发出中断请求时,CPU按照中断优先权的高低顺序,依次响应。7三、中断服务程序处理中断源,完成其所要求功能的程序,称中断服务程序(中断例行程序、中断子程)。CPU执行流程中断服务程序1中断服务程序2非预料事件2非预料事件18非预料事件是指事件发生的时间无法预知,即中断源何时产生中断不确定,是随机的。但事件的性质及处理方法则是已知的, 确定的,即中断服务程序是事先编写好的,只是何时执行未知。中断源产生中断的随机性,使中断服务程序的执行也具有随机性,即何时执行中断服务程序不是在程序中安排好的。9四、断点和中断现场断点:是指CPU执行的现行程序被中断时的下一条指令的地址,又称断点地址。中断现场:是指CPU转去执行中断服务程序前的运行状态,包括CPU内部各寄存器、断点地址等。101000:150H、 MOV AX, 0 ADD AX, DX MOV DI , AX 、 、 、 、 、 PUSH AX、 IRETCPU在执行此指令时, 某中断源发申请中断; CPU在执行完该指令后 , 转去执行中断子程 地址1000:150H为断点断点概念:11l早期中断概念的引入,是为解决CPU与外设间的速度匹配问题,提高CPU 的工作效率。中断源主要是由外部硬件产生。l当今的中断技术,不再限于外部硬件产生中断(称硬件中断或外中断 ),还可由CPU内部产生 (如被零除操作),或者由程序预先安排,即由指令调用中断服务程序。 (称软件中断或内中断)五、硬件中断和软件中断121000:150H、 MOV AH, 01 INT 21H CMP AL, 0Dh 、 、 、 、 、 PUSH AX、 IRET用指令调用中断程序软件中断 用指令 调用中断程序13第二节 8088CPU的中断系统一、8088CPU的中断分类二、8088CPU的中断优先权三、8088CPU响应中断的过程四、8088CPU如何获取中断类型号14一、 8088CPU的中断分类按中断源的不同,中断分为内中断和外中断。1、内中断(软中断)指CPU执行某些特殊操作或由INT指令引起的中断 被零除操作或OF=1时执行INTO指令引起 使用DEBUG中的单步或断点设置操作引起 执行INTn 指令引起15指外部芯片通过CPU的INTR引脚或NMI引脚发出中断申请引起的中断。当INTR上有高电平信号当NMI上有上升沿信号2、外中断(硬中断)8 0 8 8GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND最大组态(最小组态)VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 (HIGH)(SSO) MN/MX RD RQ/GT0(HOLD) RQ/GT1(HLDA) LOCK(WR) S2(IO/M) S1(DT/R) S0(DEN) QS0(ALE) QS1(INTA) TEST READY RESET 16l 可屏蔽中断由INTR引脚引起的中断,称可屏蔽中断。CPU是否响应INTR引脚上的中断请求取决于IF标志:IF=1,CPU响应INTR引脚上的中断请求IF=0,CPU不响应INTR引脚上的中断请求即当IF=0时,将INTR引脚上的中断申请屏蔽。 l 非屏蔽中断由NMI引脚引起的中断,称非屏蔽中断。当NMI引脚上产生上升沿信号,CPU必响应此中断请求,即NMI 引脚上的中断请求不受IF标志的控制,IF不能屏蔽NMI引脚上的中断请求。但在系统通电瞬间或屏蔽寄存器最高位置“0”可屏蔽NMI。将最高位置“1”又可以开放 NMI。 MOV DX,A0H;A0HBFH为屏蔽寄存器 MOV DX,A0HMOV AL,00H MOV AL,80HOUT DX,AL;屏蔽NMI OUT DX,AL;开放NMI17保留(ALT打印机)中断逻辑INTn 指令INTO 指令除法 错误单步 TF=1非屏蔽中断请求IR0IR6IR5IR4IR3IR2IR1IR7可编程 中 断 控制器 (PIC)8259AINTn4012CPUINTRNMI08090A0B0C0D0E0F系统定时器键盘保留(打印机)软盘串行通信接口保留(通信)彩色/图形接口8086/8088中断源18当有多个中断源同时产生中断申请时 , CPU先响应优先权最高的中断源, 再响应优先级较低的中断源。二、8088CPU的中断优先权优先级 高 低 内中断 ( 除零,INT 指令,断点, INTO指令 ) 非屏蔽中断 可屏蔽中断低 内中断( 单步 ) 19三、8088CPU响应中断的过程当中断源产生中断申请(INTR)后,不论是内中断、非屏蔽中断,还是可屏蔽中断, 只要满足响应条件,在执行完当前指令后,响应中断,给出INTA CPU内部硬件会自动完成下列响应中断的过程: 取中断类型号N 当前PSW的内容入栈 清IF、TF标志为0 当前CS的内容入栈 当前IP的内容入栈 取内存单元( 0 : N 4 )字内容送IP 取内存单元( 0 : N 4 + 2 )字内容送CS此时, CPU中的指令地址寄存器CS:IP指向中断程序的入 口,在下一个总线周期,开始执行中断程序。保存现场中断服务程 序入口地址 20当前指令执行完的含义 CPU正在执行一条指令,执行完本条指令,响应中断; 对于带重复前缀的串指令(如REP MOVSB),执行一次重复和串指令即可响应中断; 对MOV和POP指令,处理对象为段寄存器,以及STI和IRET指令执行完本条指令后,再执行一条指令才响应中断。21内 存中断向量表0:0 3FFH1000:150h3000:200h0: N4 0: N4+20: 0000、0200h3000h、MOV AX, 0ADD AX, DXMOV DI, AX 、 、 、 、MOV BX,CX 、 、IRET 、类型N 中断子程某中断源发申请中断, 申请执行类型号为N的中断子程响应中断前 SS:SP 响应中断后 SS:SP 堆栈执行 IRET后(IP)(CS) (PSW)0150 1000(PSW)SS:SP (IP)=0200h (CS)=3000h0:3FFH0:022从中断子程返回断点处, 靠的是执行中断子程最后的指令IRET, 从堆栈中取出断点地址给CS:IP,继续执行被中断的程序。 故中断子程最后应安排 IRET 指令。1000:150h3000:200h0: N4 0: N4+20: 0000、0200h3000h、MOV AX, 0ADD AX, DXMOV DI, AX、 、 、MOV BX,CX 、IRET 、响应中断前 SS:SP 响应中断后 SS:SP 堆栈执行 IRET后(IP)(CS) (PSW)0150 1000(PSW)SS:SP (IP)=0200h (CS)=3000h23四、8088CPU如何获取中断类型号由前面介绍知,当中断源产生中断请求后,不论是内中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后, CPU内部硬件会自动完成响应中断的过程,共七个步骤而第一步就是获取中断类型号。不同的中断源,8088CPU获取中断类型号的方法不同。24根据8088CPU对中断的分类,各中断获取类型号的方法25向量类型INTACLKAD7AD0T1T2T3T4第 一 个中断响应周期 T1T2T3T4第 二 个中断响应周期中断响应周期时序 CPU从引脚 INTA 发中断响应信号,接口芯片接收此信号,把中断类型号准备好;同时ISRi=1,IRRi=0。 CPU再从引脚 INTA 发中断响应信号,接口芯片接此信号后,将中断类型号送至数据总线上; CPU从数据总线获取中断类型号。26第三节 可编程中断控制器8259A一、引言二、8259A的引脚、编程结构和工作过程三、8259A的编程1. 设置中断屏蔽字2. 发中断结束命令EOI四、8259A在IBM PC/XT系统中的应用五、 8259A在 Pentium机中的应用27一、引言中断申请 管理接口INT中断申请接口1网络接口2硬盘接口3软盘接口4打印机8088 CPUINTRIF281. 向CPU的引脚INTR发中断申请信号当有多个外设同时发出中断请求时, 能按照一定的优先级顺序,向CPU发出中断申请, 使CPU能优先响应优先级最高的外部设备的中断申请。2. 送中断类型号在CPU中断响应周期,针对不同外设的中断请求,向CPU传送不同的中断类型号,使CPU执行相应的中断子程。中断申请管理接口的主要功能:在IBM PC机由8259A可编程中断控制器(PIC)来完成。29二、 8259A的引脚、编程结构和工作过程1. 8259A的引脚2. 8259A的编程结构3. 8259A的工作过程301. 8259A的引脚 双列直插式芯片,28个引脚(参看教材图6-37 )方 波 键 盘 保 留 串 口2硬 盘 软 盘 打印机IOW18.2HzA0CS8259A总线A0数 据 线IORRD WR片 选 译 码IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 A5 A9D0D7D0 D7VccSP/EN CA0 CA1 CA2GND+ 5V203FH用于多片 8259A 级连情况INTA INTIN
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号