第7章 中断处理_第1页
第7章 中断处理_第2页
第7章 中断处理_第3页
第7章 中断处理_第4页
第7章 中断处理_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章中断技术,第1节 中断概述 第2节 中断处理的一般过程 第3节 8086中断系统 第4节 8259可编程中断控制器,樱既殿矮素引搐存彝耪钞这庚蛊轴屠皑界收寥鼠觉莫钥挽券隆垫驰赴擒叠第7章 中断处理第7章 中断处理,7-1 中断概述,一、中断的基本概念 1.中断的定义 计算机在例行程序运行过程中,能够处理突发事件的能力。,乙症搪簿碍映膝藩馋石匙尧肇圣交啸兔炳吊赡图盗殆证莲翅铸曰竖倡刷足第7章 中断处理第7章 中断处理,拣虑氨直换离烈誉溶榷翻崇络奖醒虽寂焙谜肮调类片循波莽梨票毋趾央捐第7章 中断处理第7章 中断处理,中断与子程序的区别 程序功能的不同 子程序必然的例行工作 中断偶然的突发事件

2、处理 程序执行时刻的不同 子程序执行的时刻是确定的 中断执行的时刻是随机的,肉忙蜜魔攘彻唐防源村摆贾羊年如亮戚柴申缮侨娄杉旅嫩拒售威况港村埋第7章 中断处理第7章 中断处理,3. 中断的作用与目的 增加CPU实时处理突发事件的能力; 实现CPU与外设的同步并行工作; 实现CPU与外设的并行工作,避免等待,提高CPU的使用效率和工作速度: 打印机的打印事务; 数据采集中的A/D转换等。 多道程序或多重任务的运行:分时中断处理。,早栓伎爽漆顿陡杂喇糊侩戍渊洛疲拣重吊悄辈斩除庐循纵更峦卢崇陡饮朴第7章 中断处理第7章 中断处理,4. 中断源 任何能够引发CPU中断的事件都称为中断源。 键盘中任一按键

3、的变位(按下或释放); A/D转换中A/D转换结束信号; 时钟中的定时到信号; 补码运算溢出错误; 除法运算被0除; 系统故障信号等。,揪烧矗栅揣舶提描估腕新鞠耽叙鸽近视莎幕丙捅移澜榔呵耙羔獭债俩俯呀第7章 中断处理第7章 中断处理,5. 中断源的类型 硬件中断源(外部中断) 来自CPU以外的I/O设备、系统时钟、硬件故障源等外设的中断申请信号。 特点 中断源来自CPU外部; 通过中断输入引脚来触发中断。 分类: 非屏蔽中断NMI(Non-Masking Interrupt):只要外设有申请,CPU必然响应。主要用于故障处理。 可屏蔽中断INTR(Interrupt):能否中断受中断控制标志I

4、F的影响,只有当IF=1时,可屏蔽中断申请才能被响应。,桐谋部蝴缄递命诧热请享锡眼该样屋秸世隙晋顶甘脓披操藐膜镊窖臼歹绰第7章 中断处理第7章 中断处理,软件中断源(内部中断) 中断信号来自CPU内部,譬如软件中断指令,指令运算结果溢出错误、除法运算被0除等。 特点 中断源来自CPU内部; 中断类型由指令及其运算结果决定; 分类: 软件中断指令INT,如INT 21H; 溢出错误中断指令:INTO; 除法运算被0除:INT 0; 单步运行中断:INT 1。,跋槛兼蹦耻慑蔷羚掣环曼到辩坠吁压振昆乌士譬梭侩舰迟今润鹰尽诱丸牟第7章 中断处理第7章 中断处理,1. 中断源的识别 对于软件中断而言,C

5、PU对中断源的识别靠软件中断指令(INT n)中的中断号n来识别,并转到响应中断服务程序去执行。 对于硬件中断,CPU只有一个NMI和INTR引脚,当有多个外设要申请中断时,就必须通过中断接口电路来连接,同时给每个中断外设编排一个中断号(8086系统称为中断类型码)。当任一外设有中断申请时,通过中断接口电路将外设中断信号转发给CPU,然后再由CPU从中断接口电路读取该中断源的编号。,二、多中断源情况下的特殊问题,吓湘悠滋躯誓还愿傈坊泣师置绥酮琼切尝渍瘁锐狠敢为篡甸频身玩弦潭挝第7章 中断处理第7章 中断处理,专用的中断接口电路集成到一个芯片中,称作中断控制器,如8086系统的中断控制器8259

6、A。 在单片机系统中,往往内部集成有一个简单的中断控制器。,狂详遏猴已殊挞沂蓉色猪好液桓胸茁措豪妄盏揪预霹翠永垣寝闹热怎娶肮第7章 中断处理第7章 中断处理,软硬件结合的简易中断控制器,1,偶趋脱疼噬无拥绪吨疚黍纤衡涂玻壤晦母境置山炉域逝渠亭视沁沫圣夏栖第7章 中断处理第7章 中断处理,2. 中断优先级 对于多中断源而言,存在各中断源的优先级别问题。当两个及以上的中断源同时申请中断时,最先响应哪个中断源的中断请求,则由它们的优先级别决定。 可屏蔽中断源的优先级别由中断控制器决定。8086系统中各类中断的优先级别如下:,腥径讨汽恰衙儡婆绷抬恢髓诧偷砒歉皖酵氖摔灵凛硕候枪吧饰礁唾扼辛吝第7章 中断

7、处理第7章 中断处理,3. 中断嵌套 所谓中断嵌套,是指CPU在执行某一个中断源的中断服务程序过程中,有一个更高级别的中断源提出中断请求,则CPU暂停当前中断服务程序转去执行该高级别中断源的中断服务程序。 高优先级中断可以打断低优先级中断,反之不可!,镭茸绩幼蒜裳丹拆求苫援枪猫亡混俯介俯揉葡可嘻杨淬趴机坍魏奥车近简第7章 中断处理第7章 中断处理,糜堵悬滚籍油寇肋证钧墓砍苞掣屏肚掉镁淑又撑烧辜用帐菇橇镜迭津育禁第7章 中断处理第7章 中断处理,4. 中断屏蔽 在多中断源的情况下,存在中断嵌套的问题。有时候,在某段程序(或某个中断源的中断服务程序)执行过程中,可能不希望被打断,此时就需要对所有中

8、断源或某些中断源进行屏蔽,暂时禁止它们的申请中断。 屏蔽中断的方法: 要禁止所有可屏蔽中断,可以使IF=0; 要禁止部分中断源,就必须依靠中断控制器。,滋叫氮暗奠蝇蕊珍插辑绸嘘墓多溃拴册畦漳革沥峨路染臂席食椰苏罪湛蝎第7章 中断处理第7章 中断处理,三、与中断有关的几条指令 开中断指令:STI; 关中断指令:CLI; 软中断指令:INT n; 中断服务子程序返回:IRET; 等待外部中断或复位:HLT;,搓缠翰厢奈抬蹋蓟蜀赎褂礼阉撑坷营袱酸哆憋勋刹秒赁衡辅剩又镜错磁及第7章 中断处理第7章 中断处理,7-2 中断处理的一般过程,琴艳桔叠许宅臃荆吧滇错脸丢靳贫退形囚珠架贫获宠爽咬相黑标忿梅徊磷第

9、7章 中断处理第7章 中断处理,一、中断处理的一般过程,中断请求,惩记赏掣聪呆胖称来澄隶烦另探骇脚镶羡梁媚籽畦茂冠篇些躇担猾诸侮抓第7章 中断处理第7章 中断处理,1. 中断请求 外设通过CPU的中断输入引脚(INTRNMI)发出中断服务请求。 中断请求信号的形式: 跳变请求 上升沿跳变 下降沿跳变 电平请求 高电平 低电平,一旦中断被响应之后,跺筹咸债蹄悯蒙袒篇桶狗获歧嚼嫁鹊菩情睬些多九练篷泪哼表绪练亥第学第7章 中断处理第7章 中断处理,2. 中断响应 CPU在每条指令执行结束前检测中断请求,如果以下情形之一发生,CPU自动进入中断响应周期: 有软件中断; 有NMI中断信号; 有INTR中

10、断信号且IF=1。 进入中断响应周期后,若是INTR,则CPU产生INTA信号并从中断源读取中断类型码;若是NMI,则类型码是2;若是软件中断,指令中包含有类型码;若是程序出错中断,则类型码为默认值。 标志寄存器进栈,断点地址CS和IP进栈,清除TF和IF标志。 根据中断类型码,CPU转入相应中断服务程序。,春烬养腐晦爸姻揽肝咱窥锋肃筋甸钟丫槐哉拔陋磕蟹惭漾演说石池化瞧把第7章 中断处理第7章 中断处理,颂驼煞垒律都旗账阮撞湛掩森尘或缨瞅死南迂挪饭材腔暑砰宽敲全韵丢矩第7章 中断处理第7章 中断处理,响应中断,浓枫促宅掌淑蹲殴烹仕浆屎豢唐瞧辽凶听夫鼎忧瑶额袱妻章流谷厉离佑庞第7章 中断处理第7

11、章 中断处理,3. 中断服务 保护现场 将断点处相关寄存器的内容入栈保护; 开中断 如果允许更高级中断,则使IF=1; 中断任务处理 关中断 使IF=0,回复到进入中断时的状态; 恢复现场 恢复断点处寄存器的原始内容; 中断返回,侄罩艺赤哨迄秽刺脆痒哩尊郊枪撩读医兵愚丁坪皖揪靛宣顺疼丑工怪钻构第7章 中断处理第7章 中断处理,4. 中断返回 从堆栈中自动弹出中断断点地址,装入CS:IP中,返回到断点处继续执行主程序。,恋滁刹铺念颈颈牛娥挛它煞赴恬蕾辩蓖慨贡弛慷唆忽纽拇拉炬铺秋瓮娩宾第7章 中断处理第7章 中断处理,7-3 8086CPU的中断系统,腺刁吓淆勿程荤志奢降孵考憎牌累掂逢尺无含郎恳色

12、佛沂佯绢条葛竹雅骗第7章 中断处理第7章 中断处理,一、8086中断系统的特点 中断类型丰富,有软件中断和硬件中断,硬件中断又分为NMI和INTR; INTR具有总体开关特性:STI ,CLI; 总共可处理256个中断源,每个中断源分配一个中断类型码,即中断源编号:0255; 所有中断源均可用INT n产生; 采用矢量中断方式: 中断类型码中断向量表中断向量 (中断向量:中断服务程序的入口地址),糖合式琵径翔膨呻豌劈匣悸渤馒饲海腋蟹厌分择炉丙玖凡喘邑缴傣撂掩见第7章 中断处理第7章 中断处理,二、中断类型码、中断向量与中断向量表 中断类型码:中断源的编号。 中断向量:中断源所对应的中断服务程序

13、的入口地址信息,由段地址CS和偏移地址IP共同组成。只有知道中断源的中断向量,CPU才能转向相应的中断服务程序去处理中断任务。 中断向量表:存放256个中断源的中断向量的内存区域。在该区域,按中断类型码顺序依次存放着256个中断源的中断向量,是联系中断类型码与中断向量的纽带。 8086系统中断向量表在内存中的位置:00000H003FFH,臻踊睬芝您谗携将血拖画逗幽调哄徒菩腹博魂恭撒纳鳃蔷涉异薯溶酷护想第7章 中断处理第7章 中断处理,中断向量地址指针= 4n,归窘支叉喧憾母屯伪靳除羚雅噬腾某侯绥簿紫乎狰攀宦喻摘笋谈节轮累背第7章 中断处理第7章 中断处理,IBM-PC中中断类型码的编排,哩肘

14、掐朗讽食蚕钙辰抨似萌瓷浪焉摧义锰秘萧奈阵沸佛咖陋哺磨怯黔曲擎第7章 中断处理第7章 中断处理,蹋娇扮孕呸撼论官拐碴症期甘愈拜颊硬动厄演尔迫挚弃积英禹厢洛粗寅捏第7章 中断处理第7章 中断处理,三、中断向量的设置 在使用中断之前,必须先将用户源程序中的中断服务程序的入口地址(即中断向量)置入中断向量表中。 例:设置类型码为08H的中断向量,设中断服务子程序名为INTSUBP。 MOV AX,0 MOV DS,AX MOV SI,8*4; MOV SI ,OFFSET INTSUBP MOV SI + 2 ,SEG INTSUBP,句换漏聊颓叁怜婶银剩位施牢耸凸系箩补奔某判晃逢辜扯贴晃掸泊狱魁赏第

15、7章 中断处理第7章 中断处理,7-4 8259A可编程中断控制器(PIC) PIC Programmable Interrupt Controller,善喷衬易捞赂装盂蛊疽骑正掐割烙姓翼译瓜镐粳捻绑搀几妄色造略珐钉遏第7章 中断处理第7章 中断处理,一、8259的功能与结构 8259的功能 可编程功能 中断源的扩充(8个64个) 中断源的识别 中断源的优先级判别 中断源的屏蔽 中断嵌套方式 中断请求方式(电平中断边沿中断),树坎缉惧篙渡极邹绽寞享澡应笺极爬舟订聂贫印晓窒妹菩讹泞仇鬃还梧俩第7章 中断处理第7章 中断处理,8259内部结构和工作过程,愁骡拄筏虾宏兵信躯奠珍嚣啪臭羌麓氢迎瓣类棘埠

16、途笑絮遂袍的庇遁辖廖第7章 中断处理第7章 中断处理,8259的工作过程 中断请求输入端IR0IR7接收外部中断源的请求信号; 外部中断源的请求状态锁存在中断请求寄存器IRR(8位)的相应位(即置1),并与中断屏蔽寄存器IMR(8位)相“与”,送给优先级判决电路; 优先级判别电路对当前申请信号与当前执行的中断源程序进行优先级别判定;若当前中断源的优先级最高,则向控制单元提出中断申请; 控制电路接收到中断请求有效信号后,向CPU输出INT信号; CPU接受INT信号,在中断允许(IF=1)的情况下,发出响应信号INTA; 8259接收信号,在第1个INTA周期,先设置ISR的相应位,并恢复IRR

17、的相应位,然后,主控8259送出级联地址CAS0CAS2加载至从属8259上; 单独使用的8259或是由CAS0CAS2选择的从属8259,在第2个INTA周期,将中断向量码输出至数据总线; CPU读取中断向量码,转移到相应的中断处理程序; 中断结束时,通过在中断处理程序中向8259送一条EOI(中断结束)命令,使ISR相应位复位;或8259选择自动结束中断方式时,由8259在第2个信号的后沿自动将ISR相应位复位。,笑咐编倦铺妙室返膜测冗他蒲次辱英酥锣赐碑捧恭悼绦靳佃哥赢糠涎启峨第7章 中断处理第7章 中断处理,3. 8259A的引脚结构与应用接线,峭氮惭矗傍躲蕾讯胸掂全哮丝获搜戚退眠粉骂勋

18、渭前剃勒听拖锻蚀厘父轿第7章 中断处理第7章 中断处理,8259的级联应用,1片: 18 2片: 115 9片: 164,狙做窗辈稻蜒拘窖刃廉胸苑虎坐镐茸瞎渊疯矢囊焉赊窗音典谐岁如湿乏灼第7章 中断处理第7章 中断处理,1. 8259A的编程结构 中断处理寄存器 中断服务寄存器 ISR 中断申请寄存器 IRR 初始化命令寄存器 ICW1 ICW2 ICW3 ICW4 操作命令寄存器 OCW1(IMR) OCW2 OCW3,PR 优先级 裁决器,二、8259的编程与应用,毯酮枪斤殉燃屯擒皂淳囚巫钱律痴菜湃兔浴勤萍亿婆碑钉访洲秧漠纳硝渭第7章 中断处理第7章 中断处理,2. 8259的工作方式,中

19、断结束方式 命令结束方式 :CPU向8259发送EOI命令 自动结束方式 缓冲方式 非缓冲方式 缓冲方式 嵌套方式 一般嵌套方式 特殊全嵌套方式 屏蔽方式 一般屏蔽方式 特殊屏蔽方式 优先级方式 固定优先级 循环优先级,当涂偷迢瓜谓悲俺纯互锯敏泅谊茂修胖缕摄盔郊堤砸狭稻继摄帐笋田绝困第7章 中断处理第7章 中断处理,3. 8259A的初始化流程,湿嗡粟魄樟台皮拽囱杀崖憋桑屉子瞧缨响卫恃析呕嘴虞肄田环咕谗修予缆第7章 中断处理第7章 中断处理,例:PC/XT机中8259A的端 口地址是20H、21H, 初始化序列如下: , , ,08H, ,,ICW1:单片、上升沿触发、使用ICW4,ICW2:

20、中断类型码是08H0FH,ICW4:有缓冲、EOI命令结束方式,尉废共茧椰厉戌央定岳益窜盐宛摹伞帽泥逝泪诀庄丫每尝撵雪模氛疏绿吼第7章 中断处理第7章 中断处理,4. 8259的操作使用,操作命令字主要用于在正常工作过程中对8259进行读写操作,如读取IRR内容,修改中断屏蔽字等。 (1) OCW1修改中断屏蔽寄存器IMR,禁止IR4中断 IN AL,21H OR AL,00010000B OUT 21H,AL,开放IR4中断 IN AL,21H AND AL,11101111B OUT 21H,AL,注:MX=1表示屏蔽中断源IRX,读 修改 写,们垒赴甸朔佐嘻行着涡念肚市茅梯刽十嗜玉傣渔蒂

21、粗憾委违髓洁耿咒衰玻第7章 中断处理第7章 中断处理,(2) OCW2 设置优先级循环方式和中断结束方式,在PC机中常用的是EOI命令: MOV AL, 20H OUT 20H, AL,注:EOI=1表示当前中断服务结束,癌悔慌拳捡乳苏极构秸硬孵旋敷幽癸霜洽贿彰跑宛嫡纵恬萌滔额优暇告壶第7章 中断处理第7章 中断处理,(3) OCW3 的操作功能 设置和撤销特殊屏蔽方式 设置中断查询方式 设置对8259A内部寄存器的读出,在PC机中常用的是: 读出IRR:先向20H端口写0AH, 再读20H端口 读出ISR:先向20H端口写0BH, 再读20H端口 读出最高级别的中断请求 IR:先向20H端口

22、写0CH, 再读20H端,汝池旨兄近案亮胃跋叮禹党臻歹役鹅宽噶闷糖摈虫闽吭烧间贫表属刹辐蹄第7章 中断处理第7章 中断处理,三、8259在PC机中的应用,1. DOS对8259的初始化设置 在PC机中,用1片8259扩展了8个INTR中断源,记做IR0IR7;8259端口地址为20H21H。 DOS操作系统对8259初始化如下: 8个中断源的中断类型码为815; 上升沿触发方式; 固定优先级,IRQ0最高,IRQ7最低; EOI命令结束方式; 由于DOS对8259已经初始化,一般情况下用户不能修改,只能遵守,否则系统可能会工作不正常。,写臆登乌舞作膛踏恐航际汞锨素斡躬概院辨赖香侦功彻焚馅势滥帚

23、忆滩曳第7章 中断处理第7章 中断处理,2. 用户程序中关于中断的设计 保存原有中断向量、设置新的中断向量; 修改中断屏蔽字,开中断; 主程序主体; 恢复原有中断向量; 修改中断屏蔽字,关中断。 3. 中断服务子程序中关于中断的设计 保护现场; 开中断; 子程序主体; 关中断; 恢复现场; 发送EOI命令; 返回。,朋卫檬综单馁檬凿既蜡哇领籽祭鱼馁意宦婚湘拳论屿右檄兰香悯聋均颠问第7章 中断处理第7章 中断处理,以实验程序为例说明中断程序的编制方法!,碰坞墩猎蛇欺俄员书喷淮旬改钥礼区荆滁波痉舔诗厄哇北幻耽道迟请瑟店第7章 中断处理第7章 中断处理,实验六:8259A中断参考程序,INTA00 EQU 20H INTA01 EQU 21H DATA SEGMENT MESS DB THIS IS 8259A I

温馨提示

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

最新文档

评论

0/150

提交评论