微处理器中断系统-8259编程指南.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微处理器中断系统-8259编程指南

第8章 中断系统 8.1 概 述 8.2 80X86中断系统 8.3 中断控制器8259A 8.1 概 述 8.1.1 中断的基本概念 1.中断和中断源 所谓“中断”是指CPU中止正在执行的程序,转去执行请求CPU为之服务的内、外部事件的服务程序,待该服务程序执行完后,又返回到被中止的程序中继续运行的过程。 引起CPU中断的事件称为“中断源”。常见的中断源有: ⑴ 外部设备的请求,如CRT终端、键盘、打印机等; ⑵ 由硬件故障引起的,如电源掉电,硬件损坏等; ⑶ 实时时钟,如定时器芯片等; ⑷ 由软件引起的,如程序错、运算错、为调试程序而设置的断点等。 8.1.2 中断处理过程 1.中断请求 2.中断判优 3.中断响应 8.1.3 中断优先级(优先权) 1.软件查询方式 2.链式优先权排队(菊花链法) 3.可编程中断控制器 中断控制器是集中断请求、中断屏蔽、中断判优、中断源类型码提供等功能于一身的专用大规模集成芯片。 采用可编程中断控制器是当前微型计算机中解决中断的最常用方案。Intel公司的8259A,就是具有上述功能的可编程中断控制器。 8.2 80x86中断系统 80x86的中断系统可处理256种个中断源。这些中断源可分为两大类: 外部中断(硬件中断) 内部中断(软件中断) 8.2.1 外部中断(硬件中断) 1、可屏蔽中断INTR 受CPU中断允许标志位IF的控制,即IF=1时,CPU才能响应INTR引脚上的中断请求。 复习:CLI 功能:IF 0 STI IF 1 当可屏蔽中断被响应,CPU需执行7个总线周期,才转入中断服务程序。即: (1)在第一个总线周期内通知外部中断系统CPU已响应; (2)在第二个总线周期,从中断源读取中断类型号; (3)执行一个总线写周期,将标志寄存器内容压栈,同时使IF为0,TF为0; (4)执行一个总线写周期,把CS内容压栈; (5)执行一个总线写周期,把当前IP内容压栈;; (6)执行一个总线读周期,从中断向量表中读取中断服务程序的偏移地址并送IP; (7)执行一个总线读周期,从中断向量表中读取中断服务程序的段地址并送CS。 2、非屏蔽中断 非屏蔽中断NMI信号连到CPU的NMI引脚,它不受CPU中断允许标志位IF的控制; 中断类型号为2; PC机系统中,NMI被用于检查系统RAM的奇偶错,或I/O通道中扩展选件板上的奇偶校验错等。 8.2.2 内部中断(软件中断) 除法错中断:执行除法指令时,若除数为0或商超过寄存器所能表达的范围,则CPU立即产生一个中断类型号为0的中断。 溢出中断:如果上一条指令使溢出标志位OF为1,则执行INTO指令产生中断,溢出中断的中断类型号为4。 INT n指令中断:在执行中断指令INT n时产生的一个中断类型号为n的内部中断。 单步中断:当单步标志(陷阱标志)TF置“1”时,80x86处于单步工作方式。在单步工作时,每执行完一条指令,CPU自动产生中断类型号为1的中断。 断点中断:断点中断是80x86提供的一种调试程序的手段。用于设置程序中的断点,中断类型号为3。 中断优先级(由高到低): 除法错、溢出、INT n指令、断点中断 非屏蔽中断 可屏蔽中断INTR 单步中断 8.2.3 中断向量表 中断向量表是存放中断服务程序入口地址的表格。它存放于系统内存的最低端,共1024个字节,每4个字节存放一个中断服务程序的入口地址。 CPU响应中断后,将中断类型号×4,在中断向量表中“查表”得到中断服务程序入口地址,分别送CS和IP,从而转入中断服务程序。 设置中断向量的方法: 1、将中断服务程序的入口地址直接写入中断向量表中的相应单元 MOV AX , 0000H MOV DS , AX MOV SI , 中断类型号 * 4 MOV AX , 中断服务程序偏移地址 MOV [SI], AX MOV AX , 中断服务程序段地址 MOV [SI+2] , AX 2、二是利用DOS功能调用完成中断向量的设置 中断向量设置(DOS功能调用 INT 21H) 功能号:AH=25H 入口参数:AL=中断类型号, DS:DX=中断向量(段地址:偏移地址) 获取中断向量(DOS功能调用 INT 21H) 功能号:AH=35H 入口参数:AL=中断类型号 出口参数:ES:BX=中断向量(段地址:偏移地址)

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档