微机原理与接口技术_第8章微型计算机中断系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微机原理及接口技术第八章微型计算机中断系统CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。一、中断的概念8.1概述8.1概述中断技术是微机中一项重要技术。它不仅在数据输入、输出中提高了CPU的效率,而且在多外设、实时控制、故障处理中也是一项必不可少的技术。中断处理的过程:INTR=1i+1条指令中断服务程序i条指令CPU响应中断外设中断源申请中断INTA=0②实时处理。控制系统往往有许多数据需要采集或输出。实时控制中有的数据难以估计何时需要交换。中断可为实时控制提供支持。③故障处理。计算机系统的故障往往随机发生,如电源断电、运算溢出、存储器出错等。采用中断技术,系统故障一旦出现,就能及时处理。中断的应用特点①CPU与外设并行工作。解决CPU速度快、外设速度慢的矛盾。在外设需要时发出中断申请,CPU才中断原有工作执行中断服务程序,与外设交换数据;中断服务结束,CPU返回原程序继续执行。8.1概述一、中断的概念1.中断源引起CPU中断的事件——中断源。例如:外设——请求输入输出数据,报告故障等事件——掉电、硬件故障、软件错误、非法操作、定时时间到等中断源分类:内部中断:CPU内部执行程序时自身产生的中断外部中断:CPU以外的设备、部件产生的中断8.1概述2.中断响应对于内部中断和非屏蔽中断来说CPU应立即响应。对于可屏蔽中断来说CPU在每条指令的最后一个T检测INTR引脚,当有中断请求并开中断(IF=1)的情况下向外设发出中断响应信号INTA#。当CPU响应中断后首先要保护断点,然后转去执行中断服务程序,中断服务程序执行结束返回断点继续执行被中断的程序。一、中断的概念(续)8.1概述一、中断的概念(续)8.1概述3.中断向量表(中断矢量表)中断向量表即中断服务程序入口地址表。中断向量表中存放着中断服务程序的入口地址。CPU响应中断后根据中断类型号在中断向量表中查到对应的中断服务程序的入口地址,然后转到中断服务程序。一、中断的概念(续)8.1概述4.中断优先级当多个中断源同时发生中断请求时CPU先响应优先级高的中断。当CPU正在运行中断服务程序时又有高优先级的中断请求进入,CPU会暂时挂起正在运行的中断服务程序去执行高级的中断服务程序。实现中断嵌套。一、中断的概念(续)8.1概述5.中断屏蔽对于可屏蔽中断,CPU可以由软件设置,使之不能被响应,称为中断屏蔽。8086/8088中断源类型NMIINTR中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器8259APIC8086/8088CPU内部逻辑断点中断可屏蔽中断请求n43012二、中断分类8.1概述8086/8088共有256个中断源,分内部中断和外部中断两大类:二、中断分类(续)8.1概述由外部硬件产生的中断。分为非屏蔽中断和可屏蔽中断两种:1.外部中断:非屏蔽中断:从NMI引脚引入,上升沿有效,不受IF(中断允许)位限制,中断向量码为2。可屏蔽中断:从INTR引脚引入,高电平有效,当IF=1时允许中断,中断向量码由中断控制器(如8259)提供。①软中断指令产生的中断;如:INT12HINT21H2.内部中断(软中断):有三种情况能引起内部中断:二、中断分类(续)8.1概述软中断指令产生的中断;CPU进行运算时发生错误产生的中断;单步和断点中断,用于程序调试。②CPU进行运算时发生错误产生的中断;2.内部中断(软中断):二、中断分类(续)8.1概述除法错中断:中断类型号为0,当商超出计算机所能表示的范围时产生。溢出中断:中断类型号为4,专用指令INTO当运算使溢出标志OF=1时产生。例如:ADDAX,VALUEINTO若OF=0INTO不起作用,否则产生中断2.内部中断(软中断):二、中断分类(续)8.1概述③单步和断点中断,用于程序调试。单步中断:用于程序调试。当TF位置1后,每执行一条指令CPU即自动产生中断类型号为1的中断。断点中断:用于程序调试。中断类型号为3。当用debug调试程序时,可以在程序中插入断点,在断点处插入一条断点指令INT38.2中断处理过程1.中断请求:对中断请求信号的规定:信号要满足CPU的要求;应被有效的记录;信号的应及时撤消。对于可屏蔽中断中断的处理过程分以下几步:2.中断响应:指令执行结束;开中断;没有复位、保持和非屏蔽中断;如果正在执行STI(开中断)IRET(中断返回)指令,CPU要再执行一条指令后才响应。对于非屏蔽中断CPU会立即响应对于可屏蔽中断要满足一定条件:8.2中断处理过程3.保护现场:软件查询法;中断矢量法。4.转入执行中断服务程序:中断源识别:中断服务:5.恢复现场:6.中断返回:8.2中断处理过程一、CPU对中断的响应关中断断点保护转中断服务CPU自动执行中断响应保护现场开中断中断服务恢复现场返回主程序CPU执行中断服务程序执行一条指令指令结束INTR=1取下一条指令CPU执行主程序NN1、CPU发INTA同时,自动关中断2、CPU自动将断点CS,IP,PSW入栈3、CPU将中断源提供的中断类型码形成中断服务入口地址,送CS,IP执行PUSH指令用于中断嵌套。若无中断嵌套,可放在恢复现场前执行POP指令原PSW,IP,CS出栈,返回主程序IF=1INTR=18.2中断处理过程8.2中断处理过程对于不可屏蔽中断和IF无关,也不用判断中断源,直接转到中断2,在中断处理过程过程中仍能响应不可屏蔽中断。对于软件中断由程序设定,能被不可屏蔽中断和可屏蔽中断所中断。中断请求非屏蔽中断内部中断可屏蔽中断第2个INTA周期读中断向量码第1个INTA周期FLAGS→((SP)-1)((SP)-2)(CS)→((SP)-3)((SP)-4)(IP)→((SP)-5)((SP)-6)(SP)-6→SP0→IF0→TF(4n)(4n+1)→(IP)(4n+2)(4n+3)→CS中断处理中断响应过程:INTA:中断响应输出信号(两个负脉冲),用于读中断向量码8086/8088中断过程二、8086/8088的中断响应过程完成当前指令内部中断NMIINTRTF=1执行下一条指令IF=1响应中断读类型码标志入栈调服务程序CS、IP入栈清除IF、TF令TEMP=TF又有NMITEMP=1执行服务程序CS、IP出栈标志出栈继续执行被中断的程序YNNNNYYYYNNYYNIF=1读类型码N形成中断类型码二、中断向量表8.2中断处理过程对于可屏蔽中断,当CPU响应中断后要判断是哪个中断源发出的中断请求(中断源识别),可以采用软件查询法和中断矢量法。软件查询法的具有简单优点是简单,但浪费时间,当源较多时有些设备可能长时间得不到服务。中断矢量法是将中断服务程序的入口地址(矢量地址)放到一个转移地址表中,根据中断类型号可以在表中查到对应的中断服务程序的入口地址。存放各类中断的服务程序入口地址(段和偏移)表的地址位于内存的00000H~003FFH,大小为1KB,共256个入口每个服务程序入口占用4Bytes,低字为段内偏移,高字为段基址根据中断类型号获得中断服务程序入口的方法:(n为中断类型号)中断向量在IVT中的存放地址=4×n8086/8088中断向量表(IVT)二、中断向量表8.2中断处理过程CSn=0,存放除法中断程序入口地址...000H004H008H3FCH3FFHIPCSCSIPn=1,存放单步中断程序入口地址n=255中断n的服务程序入口地址存放在4n开始连续的4个单元中(4×0)(4×0+1)2个单元(4×0+2)(4×0+3)两个单元二、中断向量表8.2中断处理过程例:某中断的中断类型号为68H,其中断过程为:(1)计算存放中断服务程序入口地址的地址=68H*4=1A0H;(2)取中断入口地址的段内偏移量装入IP,IP=2050H,段码装入CS,CS=A000H;(3)转向中断服务程序;(4)中断返回502000A0001A0H001A2H001A4H存放地址=68H*4=1A0H2050A000STIPUSHDSIRET中断服务程序A000:2050INT68HMOVAX,0①②③④⑤2.中断入口地址的设置IBMPC对256个中断类型已进行了地址分配,其中40H以后的中断类型号可供用户使用。供用户使用的中断类型号,可由用户定义为软中断,由INTn指令引用;可通过INTR端或通过中断控制器8259A引入可屏蔽的硬件中断。使用时用户要自己将中断服务程序入口地址置入相应的中断向量表内。方法1:通过指令来设置程序1:MOVAX,0;中断入口表MOVES,AX;段地址送ESMOVDI,n*4;偏移量送DIMOVAX,OFFSETINTRADCLD;DF=0递增STOSW;传送子程序偏移地址MOVAX,CSSTOSW;传送子程序段地址STI;开中断MOVAX,0;中断入口表MOVES,AX;段地址送ESMOVBX,n*4;偏移量送DIMOVAX,OFFSETINTRADMOVES:[BX],AXMOVAX,SEGINTRADMOVES:[BX+2],AXSTI程序2:方法2:通过调用DOS功能来设置设置中断入口:把由AL指定中断类型号的中断入口DS:DX中放置在中断入口表中。预置:AL=中断类型号DS:DX=中断服务程序入口地址AH=25H执行:INT21H取中断入口:把由AL指定中断类型号的中断入口,从中断入口表中取到ES:BX中。预置:AL=中断类型号AH=35H执行:INT21H返回:ES:BX=中断服务程序入口地址MOVAL,n;取中断入口MOVAH,35HINT21HPUSHES;存原中断入口PUSHBXPUSHDSMOVAX,SEGINTRADMOVDS,AXMOVDX,OFFSETINTRADMOVAL,n;中断类型号MOVAH,25H;设置中断入口INT21HPOPDSPOPDX;恢复原中断入口POPDSMOVAL,nMOVAH,25HINT21HRET二、中断向量表8.2中断处理过程3.中断类型号的获取对于内部中断和从NMI引入的非屏蔽中断,类型号固定。对于从INTR引入的可屏蔽中断,类型号有两种方法:并行输入接口;8259中断控制器中断主程序的编写主程序中的初始化:设置中断向量表设置中断屏蔽位设置中断允许标志。硬件(外设接口)和CPU自动完成:外设向CPU发INTR当前指令结束,CPU发INTA#CPU读中断类型号CPU保存断点关中断、禁止单步中断取中断服务程序入口地址转到中断服务程序中断服务子程序的编写中断服务子程序:保护现场若允许中断嵌套要开中断执行中断处理程序关中断,禁止其它中断进入发EOI命令,结束中断恢复现场用IRET指令返回主程序8.3中断控制器8259A1、8级优先权控制,通过级连可扩展到64级优先级控制;2、每一级可由程序单独屏蔽或允许;3、在CPU响应周期,可提供相应的中断类型码。中断类型码由8259编程设定;4、通过编程可设定多种工作方式。一、功能数据总线缓冲器读/写控制电路级联缓冲器/比较器D0~D7RD#WR#A0CS#中断请求寄存器(IRR)CA0CA1CA2SP#/EN#判优电路PR内部服务寄存器(ISR)中断请求寄存器(IMR)控制电路IR0...IR7INTA#INT8259内部结构图二、中断控制器8259A内部结构8.3中断控制器8259A1、数据总线缓冲器与CPU的DB连接,传送控制字、状态字和中断类型码等。2、读写逻辑通过IORD、IOWR、CS、A0控制接收CPU的命令、发出8259的状态。8.3中断控制器8259A二、中断控制器8259A内部结构(序)CSRDWRA0D4D3读写操作01001写ICW10101写ICW2、ICW3、ICW4、OCW1010000写OCW2010001

1 / 72
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功