《微机中断控制.ppt》由会员分享,可在线阅读,更多相关《微机中断控制.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机中断控制 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望教学重点n 8088 CPU的中断系统的中断系统n 内部中断服务程序的编写内部中断服务程序的编写n 中断控制器中断控制器8259A的使用的使用27.1概述概述n中断:中断:当当CPUCPU正正常常运运行行程程序序时时,由由于于随随机机的的事事件件(包包括括内内部部和和外外部部请请求求),引引起起CPUCPU暂暂停停正正在在运运行行的的程程序序,转转去去执执行行请请求求中中断断的的外外设设(或或内内部部事事
2、件件)的的中中断断服服务务程程序序,中中断断服服务务结结束束后后再再返返回回被被中中止止的的程程序序,继继续续执执行,这一过程称为中断。行,这一过程称为中断。n中断过程给分为中断过程给分为5 5个步骤:个步骤:中断请求、中断判优、中断响应、中断服务、中断请求、中断判优、中断响应、中断服务、中断返回。中断返回。3 中断相关概念:中断相关概念:1 1、中断源、中断源:引起引起CPUCPU产生程序中断的事件,即中断的来源。产生程序中断的事件,即中断的来源。nI/OI/O设备。如键盘、纸带读入机、打印机。设备。如键盘、纸带读入机、打印机。n数据通道。如磁盘、磁带。数据通道。如磁盘、磁带。n实时钟实时钟
3、,如外部所需的定时电路。如外部所需的定时电路。n故障源。如掉电、存储器奇偶校验错等。故障源。如掉电、存储器奇偶校验错等。nCPUCPU运行指令引发,或为调试程序而设置的中断源。运行指令引发,或为调试程序而设置的中断源。n外设发来的中断请求(随机发生)外设发来的中断请求(随机发生)(可屏蔽、不可屏蔽中断)(可屏蔽、不可屏蔽中断)nCPU内内部部执执行行指指令令引引发发的的中中断断,称称内内部部中中断断(预先安排的中断指令,预设的)(预先安排的中断指令,预设的)42.中断响应中断响应nCPUCPU停停止止现现在在正正在在进进行行的的处处理理任任务务,转转向向中中断断请请求求相相对对应应的的处处理程
4、序的过程理程序的过程.n现场保护、关中断、断点保护、控制转移到中断服务子程序。现场保护、关中断、断点保护、控制转移到中断服务子程序。3.中断优先级中断优先级n当当有有多多个个中中断断源源同同时时请请求求中中断断时时,因因CPUCPU不不能能同同时时处处理理,所所以必须按事先安排的优先级顺序依次处理。以必须按事先安排的优先级顺序依次处理。nCPUCPU先响应优先级高的中断,挂起优先级低的中断。先响应优先级高的中断,挂起优先级低的中断。n中断嵌套:中断嵌套:高级中断源能打断低级中断处理高级中断源能打断低级中断处理。当当CPUCPU在运行中断服务子程序时,在运行中断服务子程序时,又有新的更高优先级的
5、中断申请又有新的更高优先级的中断申请 进入,进入,CPUCPU要挂起原中断进入更高要挂起原中断进入更高 级的中断服务子程序,实现功能。级的中断服务子程序,实现功能。n所以中断系统应具有所以中断系统应具有优先权排队优先权排队 功能。功能。4.4.中中断断屏屏蔽蔽:由由软软件件设设置置,使使某某些些中中断断源源即即使使有有请请求求也也不不能能被被响响应。应。主主程程序序高级中断处理高级中断处理低级中断处理低级中断处理5n一个中断系统的基本功能:一个中断系统的基本功能:(1)能能实实现现中中断断响响应应、中中断断服服务务、中中断断返返回回、中中断断屏蔽。屏蔽。(2)能实现中断优先级排队)能实现中断优
6、先级排队(3)能实现中断嵌套。)能实现中断嵌套。67.1.2 8088/8086的中断系统的中断系统n8088的中断系统采用的中断系统采用向量中断机制向量中断机制n指通过中断向量进入中断服务程序的一种方法。指通过中断向量进入中断服务程序的一种方法。n中断向量:中断向量:中断服务程序入口地址中断服务程序入口地址n能够处理能够处理256个中断个中断n用用中断向量中断向量号号0 255区别区别n由中断向量号查由中断向量号查中断向量表中断向量表,得到,得到中断向量中断向量n中断源分两大类:外部中断和内部中断中断源分两大类:外部中断和内部中断n可可屏屏蔽蔽中中断断还还需需要要借借助助专专用用中中断断控控
7、制制器器Intel 8259A实现优先权管理实现优先权管理78088/8086的中断系统结构的中断系统结构中断逻辑中断逻辑INTO指令指令4单步单步中断中断1除法除法错误错误0INT N指令指令8088/8086CPUNMI8259A中断中断控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外设设中中断断源源 INTA可屏蔽中断请求可屏蔽中断请求 INTR可屏蔽中断源可屏蔽中断源内部中断内部中断非屏蔽中断请求非屏蔽中断请求81.1.外部中断外部中断外部中断外部中断 外外部部中中断断是是由由于于8088外外部部通通过过CPU引引脚脚提提出出中中断断请请求求而而引引起的中断。起的中断。
8、具有随机性具有随机性。n不可屏蔽中断(不可屏蔽中断(NMI):向量号固定为):向量号固定为2n外外部部通通过过非非屏屏蔽蔽中中断断(NMI)请请求求(边边沿沿触触发发,上上升升沿沿之之后后维维持持两两个个时钟周期高电平有效),时钟周期高电平有效),CPU必须响应。必须响应。不受不受IF的控制。的控制。n非非屏屏蔽蔽中中断断主主要要用用于于处处理理系系统统的的意意外外或或故故障障(如如奇奇偶偶校校验验或或协协处处理理器器运算错误等运算错误等n可屏蔽中断(可屏蔽中断(INTR):向量号由中断控制器提供):向量号由中断控制器提供n外外部部通通过过可可屏屏蔽蔽中中断断引引脚脚INTR 请请求求(采采用
9、用电电平平触触发发,高高电电平平有有效效,响应时将产生有效的响应时将产生有效的 INTA 信号,进入中断响应周期。信号,进入中断响应周期。n得到响应的条件:外得到响应的条件:外设中断请求是否被屏蔽设中断请求是否被屏蔽 CPU是否开中断是否开中断IF=1n可屏蔽中断主要用于外设中断请求(请求交换数据等服务)可屏蔽中断主要用于外设中断请求(请求交换数据等服务)9中断标志中断标志IF的状态的状态nIF0:可可屏屏蔽蔽中中断断不不会会被被响响应应(禁禁止止中中断断,关关中中断断,中中断断屏蔽)屏蔽)n系统复位,使系统复位,使IF0n任何一个中断被响应,使任何一个中断被响应,使IF0n执行指令执行指令C
10、LI,使,使IF0nIF1:可可屏屏蔽蔽中中断断会会被被响响应应(允允许许中中断断,开开中中断断,中中断断开开放)放)n执行指令执行指令STI,使,使IF1n执行指令执行指令 IRET 后后IF 将恢复为中断前的状态将恢复为中断前的状态 n明确明确 IF 标志的状态是关键标志的状态是关键10复位、复位、STI、CLI、CPU响应中断时都会影响响应中断时都会影响IF的状态的状态11n数据输入数据输入的同时清的同时清除中断请除中断请求信号求信号具有中断请求与中断屏蔽的接口电路具有中断请求与中断屏蔽的接口电路n写控制端口,写控制端口,同时设置中同时设置中断屏蔽寄存断屏蔽寄存器器n P240图图8-2
11、122.内部中断内部中断n内内部部中中断断是是由由于于8088内内部部执执行行程程序序出出现现特特殊殊情情况况而而引引起起的的中中断。断。除除0号中断外,其他都号中断外,其他都不具备随机性不具备随机性。n除法错中断:除法错中断:向量号为向量号为0n单步中断(单步中断(TF=1):):向量号为向量号为1n断点中断(断点中断(int 3):):向量号为向量号为3n溢出中断(溢出中断(into):向量号为向量号为4n指令中断(指令中断(int n):):向量号为向量号为nn内部中断的中断向量号部分由内部中断的中断向量号部分由Intel公司确定,公司确定,nDOS要占用一部分要占用一部分 n用户也可以
12、使用一部分,实现自己的中断用户也可以使用一部分,实现自己的中断137.2 可屏蔽中断处理过程可屏蔽中断处理过程一、一、CPU响应可屏蔽中断的条件响应可屏蔽中断的条件1.外设提出中断申请外设提出中断申请2.本中断位未被屏蔽本中断位未被屏蔽3.本中断优先级别最高本中断优先级别最高4.CPU允允许许中中断断,即即CPU是是开开中中断断的的IF=1,允允许许CPU响响应应可屏蔽中断可屏蔽中断5.现行指令执行结束现行指令执行结束二、中断响应的过程二、中断响应的过程n见见JIA教材教材P265 图图7.3 外部能发中断请外部能发中断请求信号到求信号到CPU的的INTR148088的中断响应过程的中断响应过
13、程NMIN软件中断软件中断INTRTF=1中断响应周期中断响应周期读中断向量号读中断向量号下条指令下条指令现行指令现行指令IF1NNNNYYYYYnP265图图7.3从指令中或内部从指令中或内部获得中断向量号获得中断向量号中断向量号中断向量号2中断向量号中断向量号1中断中断响应响应及处及处理理n8088/8086各各种种中中断断源源的的优优先先权权,实际上是指实际上是指被识别出来的先后顺序被识别出来的先后顺序158088的中断响应过程的中断响应过程(续)(续)Y又有又有NMITEMP1标志寄存器入栈标志寄存器入栈TEMPTF,IFTF0CS:IP入栈入栈获取中断向量获取中断向量执行服务程序执行
14、服务程序弹出弹出CS:IP弹出标志寄存器弹出标志寄存器返回被中断程序返回被中断程序(1)现场保护)现场保护(2)关中断关中断,清除,清除TF(3)断点保护)断点保护(4)据中断向量号查中断)据中断向量号查中断 向量表,得入口地址向量表,得入口地址(5)执行中断处理程序)执行中断处理程序NNY(6)断点恢复,现场断点恢复,现场 恢复,返回恢复,返回单步中断单步中断IRET168088/8086的中断优先级的中断优先级高高低低 采用查询中断方式,查询的先采用查询中断方式,查询的先后顺序后顺序决定了各中断源的优先级别决定了各中断源的优先级别n软件中断软件中断n除法错中断除法错中断n指令中断指令中断n
15、溢出中断溢出中断n非屏蔽中断非屏蔽中断n可屏蔽中断可屏蔽中断n单步中断单步中断n内内部部中中断断、NMI 和和INTR 中中断断处处理理过过程程的的主主要要区区别别在在于于中中断断向向量量号号的的获获得方法不同。得方法不同。177.2.4 中断响应时序中断响应时序 两两个个连连续续的的INTA周周期期,在在第第2个个INTA从从数数据据总总线线上上CPU得得到到中断向量。中断向量。在两个在两个INTA之间可能插入空闲状态。之间可能插入空闲状态。nP274 图7.6187.3 中断优先级和中断嵌套中断优先级和中断嵌套问问题题:若若系系统统有有多多个个可可屏屏蔽蔽中中断断请请求求,CPU如如何何识
16、识别别区区分分中断源?中断源?n 方法方法:中断查询。软件查询(软中断查询。软件查询(软/硬件结合)硬件结合)n方方法法:向向量量中中断断(硬硬件件):CPU响响应应中中断断时时,通通过过硬硬件件获取中断向量,不同外设,中断向量不同。获取中断向量,不同外设,中断向量不同。问问题题2:若若多多个个中中断断源源同同时时请请求求中中断断服服务务,CPU应应先先响响应应哪一个?哪一个?n 根据事先规定的优先级别来确定。根据事先规定的优先级别来确定。n 如何规定优先级:如何规定优先级:1。软件查询中断优先级。软件查询中断优先级 2、硬件优先权排队硬件优先权排队 3、矢量中断优先级、矢量中断优先级中断优先
17、级控制器(可编程)中断优先级控制器(可编程)191、用软件确定中断优先权、用软件确定中断优先权A0A15锁锁存存器器INTR三态三态缓冲器缓冲器译码译码8001HD0D7中断中断A中断中断B中断中断C中断中断HIOR中断查询接口20用软件确定中断优先权用软件确定中断优先权nCPU响响应应中中断断后后,用用软软件件查查询询(在在中中断断服服务务子子程程序序内内的的前前面面部分部分)是哪个外设提出了中断请求。是哪个外设提出了中断请求。n屏蔽法:屏蔽法:移位法移位法:IN AL,20H XOR AL,AL TEST AL,80H IN AL,20H JNE P1 RCL AL,1 TEST AL,4
18、0H JC P1 JNE P2 RCL AL,1 TEST AL,20H JC P2 JNE P3 n优点:硬件简单。缺点:转入中断服务的时间长。优点:硬件简单。缺点:转入中断服务的时间长。先查询的优先查询的优先级高先级高212、硬件查询优先方式、硬件查询优先方式 链式中断优先权排队电路链式中断优先权排队电路A2A1C2C1D2D1B2B1中断源中断源A触发器触发器中断源中断源B触发器触发器中断源中断源C触发器触发器中断矢量中断矢量D中断矢量中断矢量C中断矢量中断矢量B中断矢量中断矢量A中断源中断源D触发器触发器缓冲器缓冲器缓冲器缓冲器缓冲器缓冲器缓冲器缓冲器INTA高优先级高优先级223、矢
19、量中断优先级矢量中断优先级可编程中断优先级控制器可编程中断优先级控制器23比较器失效信号比较器失效信号(先前无中断请求时有效)(先前无中断请求时有效)比较器比较器8:3优先权优先权编码器编码器优先权优先权寄存器寄存器D0D721AB中断请求中断请求0中断请求中断请求1中断请求中断请求2A0A1A2INTRB0B1B2有中断请求有中断请求n其中的其中的中断优先权编码电路中断优先权编码电路的原理简图的原理简图24优先权排队电路的工作原理优先权排队电路的工作原理n8:3优优先先权权编编码码器器将将输输出出同同时时发发生生的的中中断断请请求求中中,优优先先权权最最高的请求对应的编码。(高的请求对应的编
20、码。(编码数字小的优先权最高编码数字小的优先权最高)n优优先先权权寄寄存存器器存存放放着着正正在在进进行行处处理理的的中中断断的的优优先先权权编编码码。(若若有有,表表明明CPU正正在在执执行行一一个个中中断断;若若没没有有,表表明明CPU不不在进行中断处理)。在进行中断处理)。n比比较较器器比比较较编编码码A2A1A0和和B2B1B0 的的大大小小,若若A=B,则则控控制制输输出出,使使接接口口不不向向CPU发发出出新新的的中中断断申申请请;只只有有ADEBUG INCBX.EXE C DEBUG INCBX.EXE 回车回车 N INC.COMN INC.COM W W 回车回车 Q Q
21、回车回车 C C 这时可运行这时可运行INC.COMINC.COM程序,即:程序,即:C INC C INC 回车回车 一旦运行一旦运行INC.COMINC.COM程序后,在微机中就新增了一个程序后,在微机中就新增了一个中断子程序。在其后运行的程序中中断子程序。在其后运行的程序中,就如同调用就如同调用DOSDOS或或BIBIOSOS中断子程序一样调用中断子程序一样调用INT 50H,INT 50H,其功能是其功能是BXBX内容增内容增1 1。36例例2:内部中断服务程序内部中断服务程序n编写:编写:80H 号中断服务程序号中断服务程序n功功能能:通通过过BIOS功功能能调调用用INT 10H,
22、显显示示以以“0”结结尾尾的字符串。的字符串。n入入口口参参数数:DS:DX存存字字符符串串缓缓冲冲区区首首地地址址(段段地地址址:偏偏移地址)。移地址)。37D SEGMENT intoff dw?;用于保存原中断向量将来恢复用于保存原中断向量将来恢复 intseg dw?;用于保存原中断向量将来恢复用于保存原中断向量将来恢复 intmsg db A Instruction Interrupt!,0dh,0ah,0;要显示的信息;要显示的信息D ENDSC SEGMENT ASSUME C:CS,D:DSBG:MOV AX,D MOVDS,AX ;读出原中断向量读出原中断向量 mov ax,
23、35 80h int 21h mov intoff,bx;保存偏移地址保存偏移地址 mov intseg,es;保存段基地址保存段基地址 push dsmov dx,offset new80hmov ax,seg new80hmov ds,axmov ax,25 80h ;设置新中断向量设置新中断向量int 21hpop ds mov dx,offset intmsg int 80h;恢复原中断向量恢复原中断向量 mov dx,intoffmov ax,intsegmov ds,axmov ax,25 80h int 21hmov aH,4chint 21h38New80h proc sti ;开中断,允许中断嵌套开中断,允许中断嵌套 push ax ;保护现场保护现场 push bx push si mov si,dxnew1:mov al,si cmp al,0 ;判是否串尾判是否串尾 jz new2 mov bx,0 ;调调BIOS中断中断 mov ah,0eh int 10h inc si jmp new1new2:pop si;恢复现场恢复现场 pop bx pop ax iret;中断返回中断返回New80h endp C ENDS END BG39
限制150内