微机中断控制_第1页
微机中断控制_第2页
微机中断控制_第3页
微机中断控制_第4页
微机中断控制_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第7章微机中断系统7.1概述中断的概念中断分类7.2可屏蔽中断处理过程CPU响应中断的过程中断向量表中断服务子程序中断响应时序7.3中断优先级和中断嵌套7.4可编程中断控制器8259A7.5保护模式下的中断1教学重点

8088CPU的中断系统内部中断服务程序的编写

中断控制器8259A的使用27.1概述中断:

当CPU正常运行程序时,由于随机的事件(包括内部和外部请求),引起CPU暂停正在运行的程序,转去执行请求中断的外设(或内部事件)的中断服务程序,中断服务结束后再返回被中止的程序,继续执行,这一过程称为中断。中断过程给分为5个步骤:

中断请求、中断判优、中断响应、中断服务、中断返回。3中断相关概念:1、中断源:引起CPU产生程序中断的事件,即中断的来源。I/O设备。如键盘、纸带读入机、打印机。数据通道。如磁盘、磁带。实时钟,如外部所需的定时电路。故障源。如掉电、存储器奇偶校验错等。CPU运行指令引发,或为调试程序而设置的中断源。外设发来的中断请求(随机发生)(可屏蔽、不可屏蔽中断)CPU内部执行指令引发的中断,称内部中断(预先安排的中断指令,预设的)42.中断响应CPU停止现在正在进行的处理任务,转向中断请求相对应的处理程序的过程.现场保护、关中断、断点保护、控制转移到中断服务子程序。3.中断优先级当有多个中断源同时请求中断时,因CPU不能同时处理,所以必须按事先安排的优先级顺序依次处理。CPU先响应优先级高的中断,挂起优先级低的中断。中断嵌套:高级中断源能打断低级中断处理。当CPU在运行中断服务子程序时,又有新的更高优先级的中断申请进入,CPU要挂起原中断进入更高级的中断服务子程序,实现功能。所以中断系统应具有优先权排队功能。4.中断屏蔽:由软件设置,使某些中断源即使有请求也不能被响应。主程序高级中断处理低级中断处理5一个中断系统的基本功能:(1)能实现中断响应、中断服务、中断返回、中断屏蔽。(2)能实现中断优先级排队(3)能实现中断嵌套。67.1.28088/8086的中断系统8088的中断系统采用向量中断机制指通过中断向量进入中断服务程序的一种方法。中断向量:中断服务程序入口地址能够处理256个中断用中断向量号0~255区别由中断向量号查中断向量表,得到中断向量中断源分两大类:外部中断和内部中断可屏蔽中断还需要借助专用中断控制器Intel8259A实现优先权管理78088/8086的中断系统结构中断逻辑INTO指令4单步中断1除法错误0INTN指令8088/8086CPUNMI8259A中断控制器IR0IR1IR2IR3IR4IR5IR6IR7外设中断源

INTA可屏蔽中断请求

INTR可屏蔽中断源内部中断非屏蔽中断请求81.外部中断外部中断是由于8088外部通过CPU引脚提出中断请求而引起的中断。具有随机性。不可屏蔽中断(NMI):向量号固定为2外部通过非屏蔽中断(NMI)请求(边沿触发,上升沿之后维持两个时钟周期高电平有效),CPU必须响应。不受IF的控制。非屏蔽中断主要用于处理系统的意外或故障(如奇偶校验或协处理器运算错误等可屏蔽中断(INTR):向量号由中断控制器提供外部通过可屏蔽中断引脚INTR请求(采用电平触发,高电平有效,响应时将产生有效的INTA信号,进入中断响应周期。得到响应的条件:外设中断请求是否被屏蔽

CPU是否开中断IF=1可屏蔽中断主要用于外设中断请求(请求交换数据等服务)9中断标志IF的状态IF=0:可屏蔽中断不会被响应(禁止中断,关中断,中断屏蔽)系统复位,使IF=0任何一个中断被响应,使IF=0执行指令CLI,使IF=0IF=1:可屏蔽中断会被响应(允许中断,开中断,中断开放)执行指令STI,使IF=1执行指令IRET后IF将恢复为中断前的状态

明确IF标志的状态是关键10复位、STI、CLI、CPU响应中断时都会影响IF的状态11数据输入的同时清除中断请求信号具有中断请求与中断屏蔽的接口电路写控制端口,同时设置中断屏蔽寄存器

P240图8-2122.内部中断内部中断是由于8088内部执行程序出现特殊情况而引起的中断。除0号中断外,其他都不具备随机性。除法错中断: 向量号为0单步中断(TF=1):向量号为1断点中断(int3): 向量号为3溢出中断(into): 向量号为4指令中断(intn): 向量号为n内部中断的中断向量号部分由Intel公司确定,DOS要占用一部分用户也可以使用一部分,实现自己的中断137.2可屏蔽中断处理过程一、CPU响应可屏蔽中断的条件外设提出中断申请本中断位未被屏蔽本中断优先级别最高CPU允许中断,即CPU是开中断的IF=1,允许CPU响应可屏蔽中断现行指令执行结束二、中断响应的过程见JIA教材P265图7.3外部能发中断请求信号到CPU的INTR148088的中断响应过程

NMIN软件中断INTRTF=1中断响应周期读中断向量号下条指令现行指令IF=1NNNNYYYYYP265图7.3从指令中或内部获得中断向量号中断向量号2中断向量号1中断响应及处理8088/8086各种中断源的优先权,实际上是指被识别出来的先后顺序158088的中断响应过程(续)Y又有NMITEMP=1标志寄存器入栈TEMP=TF,IF=TF=0CS:IP入栈获取中断向量执行服务程序弹出CS:IP弹出标志寄存器返回被中断程序(1)现场保护(2)关中断,清除TF(3)断点保护(4)据中断向量号查中断向量表,得入口地址(5)执行中断处理程序NNY(6)断点恢复,现场恢复,返回单步中断IRET★168088/8086的中断优先级高低采用查询中断方式,查询的先后顺序决定了各中断源的优先级别软件中断除法错中断指令中断溢出中断非屏蔽中断可屏蔽中断单步中断内部中断、NMI和INTR中断处理过程的主要区别在于中断向量号的获得方法不同。177.2.4中断响应时序

两个连续的INTA周期,在第2个INTA从数据总线上CPU得到中断向量。在两个INTA之间可能插入空闲状态。P274图7.6187.3中断优先级和中断嵌套问题:若系统有多个可屏蔽中断请求,CPU如何识别区分中断源?

方法1:中断查询。软件查询(软/硬件结合)

方法2:向量中断(硬件):CPU响应中断时,通过硬件获取中断向量,不同外设,中断向量不同。问题2:若多个中断源同时请求中断服务,CPU应先响应哪一个?

根据事先规定的优先级别来确定。如何规定优先级:

1。软件查询中断优先级

2、硬件优先权排队

3、矢量中断优先级—中断优先级控制器(可编程)191、用软件确定中断优先权A0~A15锁存器INTR三态缓冲器译码8001HD0~D7中断A中断B中断C中断H……IOR中断查询接口20用软件确定中断优先权CPU响应中断后,用软件查询(在中断服务子程序内的前面部分)是哪个外设提出了中断请求。屏蔽法:移位法:

INAL,20HXORAL,ALTESTAL,80HINAL,20HJNEP1RCLAL,1TESTAL,40HJCP1JNEP2RCLAL,1TESTAL,20HJCP2JNEP3…………优点:硬件简单。缺点:转入中断服务的时间长。先查询的优先级高212、硬件查询优先方式

链式中断优先权排队电路A2A1C2C1D2D1B2B1中断源A触发器中断源B触发器中断源C触发器中断矢量D中断矢量C中断矢量B中断矢量A中断源D触发器缓冲器缓冲器缓冲器缓冲器INTA高优先级223、矢量中断优先级—可编程中断优先级控制器23比较器失效信号(先前无中断请求时有效)比较器8:3优先权编码器优先权寄存器D0~D721A<B中断请求0中断请求1中断请求2A0A1A2INTRB0B1B2…有中断请求其中的中断优先权编码电路的原理简图24优先权排队电路的工作原理8:3优先权编码器将输出同时发生的中断请求中,优先权最高的请求对应的编码。(编码数字小的优先权最高)优先权寄存器存放着正在进行处理的中断的优先权编码。(若有,表明CPU正在执行一个中断;若没有,表明CPU不在进行中断处理)。比较器比较编码A2A1A0和B2B1B0的大小,若A>=B,则控制输出,使接口不向CPU发出新的中断申请;只有A<B时,才使电路向CPU的INTR端发申请中断信号。25小结计算机当中有相同任务,即可用软件实现,也可用硬件实现。要权衡考虑。采用可编程中断控制器是当前微机系统中解决可屏蔽中断优先权管理的常用方法。268088的中断向量表中断向量:指示中断服务程序的入口地址,该地址包括:偏移地址IP、段地址CS(共32位)每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节(低对低,高对高)。8088微处理器从物理地址000H开始到3FFH(1KB),依次安排各个中断向量,向量号从0到255。256个中断向量所占用的1KB区域,称中断向量表几个概念:中断向量号N/中断向量/中断服务程序的入口地址中断向量的存放首址=N×427根据中断优先权处理中断的一般原则1.不同级别中断发生,按级别高低处理。2.当处理低级别的中断过程中,遇到高级别的中断,暂停低,转高的服务。3.当处理高级别的过程中,遇到低级别或同一级别的中断,不予理睬,待处理完后再服务低级别。4.同一级别按先后排队。28中断服务程序的代码特点:现场保护若允许中断嵌套,则开中断安排一条STI指令

….结束前恢复现场为了正常恢复,在之前要先关中断CLI,然后再作恢复工作结束时安排IRET中断返回指令,起到恢复标志位,开中断和返回断点的目的。P271297.2.3中断服务程序设计1、用户可编写的中断服务程序的种类:内部中断服务程序用INTn指令来调用外部可屏蔽中断的服务程序由外设的中断请求引发使用也可用INTn指令调用2、要事先选定中断服务程序的向量号可以在系统预留给用户的没有被占用的中断向量号中选则一个。303、编写中断服务程序与编写子程序类似利用过程定义伪指令PROC/ENDP现场保护完后的第1条指令,若为开中断指令STI,则该中断的级别低最后用中断返回指令IRET内部中断通常采用寄存器传递参数外部中断程序采用存储器传递参数4、主程序需要调用中断服务程序(只有该主程序需调用它)中断服务程序和主程序在同一个程序中主程序调用它之前,需要设置中断向量(入口地址)。然后利用INTn指令调用该中断服务程序5、用户的中断服务程序如要让其它程序使用必须驻留在系统内存中。编写安装该中断服务程序的主程序设置中断向量使中断服务子程序驻留内存在其他程序中,只要了解其入口要求和返回参数,就可以用INTN

调用。31将中断子程序的入口地址置入中断向量表的相应表项中设选择的向量号为n,其置入方法有两种:一是用数据传送指令将中断服务子程序入口相对地址存放在物理地址为4×n的字单元中,将中断服务子程序入口段地址存放在物理地址为4×n+2的字单元中。二是采用DOS置新中断向量的中断功能(25功能),即:

向量号21H

功能号25H

入口参数:DS=中断服务子程序入口段地址;

DX=中断服务子程序入口相对地址;AL=新增的向量号。32使中断服务子程序驻留内存。一旦中断服务子程序驻留内存后,一般程序员使用这一新增 的中断调用就如同调用DOS或BIOS的中断子程序一样,只要了解其入口要求和返回参数就可调用。程序驻留在内存后,它占用的存储区就不会被其他软件覆盖。使程序驻留内存,要求该程序以COM(此种结构的程序要求入口定位于100H、并且数据和代码均在同一个段内)形式运行。使程序驻留内存的方法是采用DOS的中断调用,即: 向量号21H

功能号31H

入口参数:DX=驻留程序字节数;

该功能使当前程序的DX个字节驻留内存并返回DOS。即用DOS功能调用31H代替4CH终止程序并返回DOS即可。33读取中断向量表中某中断号对应中断向量的原值用DOS的中断功能(35功能),即:

向量号21H

功能号35H

入口参数:AL=向量号。 出口参数:ES=段地址;

BX=偏移地址;一般把读出的中断向量再转存到存储器中,以备恢复时使用。

34CSEGMENTASSUMECS:CORG100HB:MOVAX,SEGSUBPMOVDS,AXMOVDX,OFFSETSUBP

;建立50H中断向量表项

MOVAH,25HMOVAL,50H

INT21H

例1:在微机中增加一中断服务子程序,其向量号为50H其功能是BX内容增1。;中断服务程序驻留内存并返回DOS

MOVDX,NMOVAH,31HINT21H

SUBPPROCFARINCBXIRETSUBPENDPNEQU$CENDS

ENDB

35

设这一源程序名为INCBX.ASM,经汇编、连接后生成

INCBX.EXE。然后可用DEBUG将其转换成COM形式的执行文 件。设文件名为INC.COM,操作步骤如下:

C>DEBUGINCBX.EXE回车 -NINC.COM

-W回车 -Q回车

C>

这时可运行INC.COM程序,即:

C>INC回车 一旦运行INC.COM程序后,在微机中就新增了一个 中断子程序。在其后运行的程序中,就如同调用DOS或BI OS中断子程序一样调用INT50H,其功能是BX内容增1。

36例2:内部中断服务程序编写:80H号中断服务程序功能:通过BIOS功能调用INT10H,显示以“0”结尾的字符串。入口参数:DS:DX存字符串缓冲区首地址(段地址:偏移地址)。37DSEGMENT

intoff

dw?;用于保存原中断向量将来恢复

intseg

dw?;用于保存原中断向量将来恢复

intmsgdb‘AInstructionInterrupt!’,0dh,0ah,0;要显示的信息DENDSCSEGMENTASSUMEC:CS,D:DSBG:MOVAX

温馨提示

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

评论

0/150

提交评论