Windows10网络连接为什么打印机直接连接路由器到WiFi上了??

微机原理及接第七章中断技术可编程中断控制器(Intel 8259A)口技术
第七章 中断技术、可编程中 断控制器(Intel 8259A) 本章内容? ? ? ? 有关I/O接口的基本概念 I/O端口与其编址方式 主机与外设之间的数据传送方式 有关中断的基本概念? ? ? ?8086中断系统 8259A可编程中断控制器 输入/输出及8259A应用举例 8086CPU中断响应流程 学习目的? 掌握微型计算机接口技术的基本概念? 了解主机与外设之间的各种数据传送方式 ? 掌握中断技术的基本概念 ? 了解8086中断系统及其对各种类型中断的 响应流程 ? 了解8259A中涉及到的有关概念 ? 掌握8259A的编程应用 8.1I/O接口概述一、接口与接口技术微型计算机系统可通过系统总线与外设相连,进行系统的扩展与开发,而外设必须通过接口才能与CPU交换信息。I/OCPU或 系统总线外设接口 电路 外设与CPU连接时存在如下问题: 1. 速度的匹配问题; 2. 时序的配合问题;3. 信息类型与信号电平的匹配问题; (数字量,模拟量;TTL电平、RS-232C电平等) 4. 信息表示格式的一致性问题; (二进制格式、ASCII码、BCD码,串行信息、 并行信息)因此,外设必项通过接口才能与CPU相连接。 接口:CPU与外设之间的一种缓冲电路,是 CPU与外设之间信息交换的中转站。接口技术:应用硬件与软件相结合的方法,研究CPU与外设之间如何实现高 效、可靠的信息交换的一门技术。 CPU内存智能仪器接口通信接口过程控制接口输入接口输出接口外存接口数字化存储示 终端 波器,数字化 调制解调器 万用表 TTY 电传机A/D转换器 开关量输入 D/A转换器 开关量输出键盘 数字化仪 点阵打印 CRT 显示 光笔 图形输入 激光打印 液晶显示 声音输入 喷墨打印 绘图仪 X-Y记录仪 扫描仪硬盘 软盘 光盘 磁带微机控制各类接口框图 二、 CPU 与外设之间的接口信息1. 数据信息 (DATA) CPU与外设交换的基本信息是数据, 有三种类型: (1) 数字量 由键盘、光电输入机等输入的信息。(通常以二进制表示的数或以 ASCII 码表示的数或字符) (2) 模拟量非电量信息传感器电量 信号处理A/D ? CPU (3) 开关量两个状态的量 (可以用0、1表示)例如电机的启与停,开关的合与开等。 2. 状态信息 (STATUS)反映当前外设工作状态的信息,例如:输入时,输入设备是否准备好? (READY) 输出时,输出设备是否空闲?(BUSY) 3. 控制信息 (CONTROL)CPU通过接口输出用以控制外设工作的信息。 例如控制I/O 设备启动或停止等。AB CPU DB CB DATA STATUS I/O 设备1 I/O 接口 23 CONTROLCPU 与外设之间的接口信息 三、接口的功能接口用以解决CPU与外设连接时存在的矛盾,一般有以下功能: 1. 数据缓存:匹配不同的数据传送速率。 2. 端口寻址:选择某一外设,某一端口。 3. 命令译码:解释CPU输出的命令,产生相 应的操作控制信号。4. 同步控制:协调时序上的差异。 8.2I/O 端口的编址方式接口电路中能被CPU访问的寄存器或某 些特定器件称为I/O端口。I/O端口分为数据 端口、状态端口和命令端口。ABCPU 1 I/O 接口 2 DATADBCBSTATUSI/O 设备3 CONTROL其中端口1为数据端口,端口2为状态 端口,端口3为控制端口。 CPU可用输入/输出指令或存储器访问指令对端口进行读/写,具体应用何种指令应视端口的编址方式而定。通常有两种编址方式:统一编址方 式和独立编址方式。 一、统一编址方式 (存储器对应I/O方式)端口地址与存储器地址统一编址AB CPU RDWR译 码 器? ?去存储器 去I/O端口 特点: 1. I/O端口与存储单元统一编址,占用了 存储器空间。2. 用存储器访问指令来处理I/O,指令灵活,但指令执行时间较长。 二、独立编址方式 (专用I/O方式)译 码 器A0~A19?去存储器8086CPUM/ IOWRRDA0~A15 译码 器?去I/O端口 特点:1. I/O端口与存储器,都有自己的地址译码器,地址空间独立,互不影响。2. 用专用I/O指令访问端口,程序易读。 问题:I/O端口地址译码电路如何设计?I/O 端口地址译码电路设计原则I/O 端口地址译码一般由地址信号和控 制信号的不同组合实现。其原则是: (1) 高位地址与CPU 的控制信号组合,经译 码电路产生 I/O 接口芯片的片选信号 (CS),实现片间寻址。(2) 低位地址线直接连接到 I/O 接口芯片, 实现片内寻址。 8.3 主机与外设之间的数据传送方式微 机 与外设间的数据传送,实际上是CPU 与I/O接口间的数据传送。CPU与外设间的数 据传送方式一般有三种:程序控制方式、中断方式和DMA方式。 一、 程序控制方式程序控制方式是指CPU与外设间的 数据传送是在程序的控制下完成的一种 数据传送方式。这种方式又分为无条件 传送方式和条件传送方式。 1.无条件传送方式无条件传送一般适合于数据传送不太频繁的情况,如对开关、数码显示器等一些简 单外设的操作。所谓无条件,就是假设外设 已处于就绪状态,数据传送时,程序就不必 再去查询外设的状态,而直接执行I/O指令进行数据传输。 数据总线 地址总线M/IO WR RD端 口 译 码 器输出锁存器输入缓冲器输出设备输入设备无条件传送输入输出接口框图输入操作:IN AL,PORT M/IO=0,RD=0,地址译码有效,输入 缓冲器被选中。 数据总线地址总线M/IO WR RD端 口 译 码 器输出锁存器输入缓冲器输出设备输入设备无条件传送输入输出接口框图输出操作:OUT PORT, AL M/IO=0,WR=0,地址译码有效,输出锁 存器被选中。 2.条件传送方式(1)查询式输入下图为查询式输入接口电路框图。RD80H数据总线 数据缓 冲器 地址总线 端 口 译 码 锁 存 器数据 选通D7输 入 设 备READY三态缓 冲器 QRS81HM/IOD+5V查询式输入接口电路框图 RD80H数据总线 数据缓 冲器 地址总线 端 口 译 码 锁 存 器数据 选通D7输 入 设 备READY三态缓 冲器 QRS D +5V81HM/IO工作原理:CPU读状态口,若READY=0,则循环检测 READY;若READY=1,读数据口读入数 据,同时置READY=0。 输入状态信息WAIT:IN AL,81HNREADY=1? Y 输入数据TEST AL,80HJZ WAIT IN AL,80H查询式输入程序流程图 (2)查询式输出下图为查询式输出接口电路框图。数据总线 WR M/ IO 选通信号 数据 锁存器 应答 S +5V D R Q 输 出 设 备 数据90H地址总线端 口 译 码D091HRD BSUY 状态 寄存器查询式输出接口电路框图 数据总线WRM/ IO选通信号数据 锁存器数据 应答 输 出 设 备90H地址总线 端 口 译 码D0S BUSY +5V D R Q91HRD 状态 寄存器工 作 原 理 : CPU 读 状 态 口 , 检 测 BUSY 信 号 , 若 BUSY=1,则等待;若BUSY=0,则通过 数据口输出数据。 输入状态信息WAIT:IN AL,91HY BUSY=1? N 输出数据TEST AL,01H JNZ WAIT MOV AL,DATA OUT 90H,AL查询式输出程序流程图 二、 中断传送方式为了进一步提高CPU的效率和使系统有实时性能,可以采用中断传送方式。在中断传送方式下,当外设准备好时,主动向CPU发出中断请求,请求CPU进行数据的 输入输出。 数据数据 锁存器三态 缓冲器D7~D0RDSTB+5VDRQ 中断 类型号输入 设备中断请求 触发器译 码 器 三态缓 冲器 GA15~A0 M/ IOINTA INTR中断允许 触发器中断方式输入接口电路框图 数据数据 锁存器三态 缓冲器D7~D0RDSTB+5VDRQ 中断 类型号输入 设备中断请求 触发器译 码 器 三态缓 冲器 GA15~A0 M/ IOINTA INTR中断允许 触发器工作原理:若输入设备准备好数据,且中断允许,则通 过中断请求触发器发INTR。如果IF=1,则CPU在当前指 令执行完后,进入中断响应周期,发INTA,待到中断类 型号,进入中断服务实现数据传送。 外 设 准 备 数 据外设请求中断 INTR有效主 程 序中 断 服 务 程 序 输入 数据中断方式的数据输入采用中断传送方式时,外设处于主动地 位,无需CPU花费大量时间去查询外设的工 作状态。与程序方式相比,大大提高了 CPU的效率。 三、DMA方式DMA (Direct Memory Access): 是存储 器与外设或存储器之间进行大量数据传 送的方法,是在DMA控制器(DMAC) 的控制下进行的。 1.DMA与程序控制数据传送路径的比较外设CPU总 线存储器程序控制的数据输入/输出DMADMA与程序控制数据传送路径比较 2.DMA传送控制原理图AB 存储器CPUDB HLDAHOLD DREQ DMAC DACK IOR / IOWMEMW / MEMR外设DMA传送控制原理图 3.DMA传送的一般操作过程外设准备好进行DMA操作, 外设接口向DMAC发DREQ DMAC向CPU发HOLD CPU现行总线周期结束,向DMAC发HLDA, AB, CB, DB呈高阻态 DMAC接管总线向外设接口发DACK DMAC向AB发地址信息, 向外设,存储器 发IOR, MEMW或IOW, MEMR, 且自动 修改地址指针. NDMA传送结束?Y DMAC撤消HOLD信号, CPU重新控制总线 4.DMA 控制器的功能① 能向CPU 发出DMA 请求信号。② CPU 响应后,接管对总线的控制,进入 DMA方式。 ③ 发出读、写控制信号。④ 决定数据传送的地址和数据传送的长度。⑤ 判断DMA 操作的结束,撤消总线请求信号, 使CPU 恢复正常工作。 5.DMA 方式与中断方式的比较特点 DMA方式 中断方式控制 数据传送 CPU 状态响应由DMA控制器控制 I/O ? 存储器不破坏CPU 内 部寄存器状态 请求-响应,级别 高于中断 适用于高速I/O设备 和成组数据交换由CPU程序控制 I/O ? CPU ? 存储器 破坏CPU内部寄存器状态请求-响应,级 别比DMA方式低 适用于慢速 I/O 设备,实时处理适用性 8.4中断的基本概念一、什么叫中断?所谓中断,是指这样一个过程:当CPU正在执行程序过程中,由于某一突然事件 的发生,暂时中止正在执行中断申请主 程 序中断服 务程序的程序,转去处理突然发生的事件(执行中断服务程 序),处理完毕,再返回原 来被中止的程序继续运行。返 回中断示意图 日常生活中类似“ 中断 ” 的例子:例1:门铃响时,放下手中正在做的事情, 跑去开门,招待客人;客人走后,接着做原 来的事情。 例2:教师讲课过程中,同学遇有疑问,不 同理解之处,随时向老师提问。问题:请同学们列举类似“中断”的例子。 二、应用中断技术的优点1.实现CPU 与外设的并行工作,提高了 CPU 的效率。外 设 准 备 数 据 主 程 序 中 断 服 务 程 序输入状态信息 N READY? Y 输入数据外设请求 中断 INTR有效输入 数据查询方式的数据输入中断方式的数据输入 二、应用中断技术的优点 1. 实现CPU 与外设的并行工作,提高了 CPU 的效率。 2. 实现实时处理。3. 实现故障处理。 三、中断源 引起中断的原因,产生中断请求的来源。通常有以下几种: 1. 一般的I/O 设备,如键盘、打印机等。2. 实时时钟。3. 故障源。4. 为了调试程序而设置的中断。 (例如设置断点,单步运行等) 四、中断系统的功能 计算机系统中,用于实现中断功能 的硬件和软件的集合,称为中断系统。中断系统应解决如下问题:1. 中断请求信号的产生 ( 中断源如何申请中断?) 2. CPU如何响应?(如何知道有中断请求?是否有求必应?响应后的处理过程?)3. 中断优先权问题4. 中断的具体服务5. 中断服务完毕,如何返回原程序? 五、实现中断优先权的方法当系统中有多个中断源存在时,若有几个 中断源同时提出申请,CPU先响应谁?当CPU正响应某一中断过程中,又有另外的 中断源提出中断请求,CPU是否响应? 为此提出了中断优先权的概念。 判断和确定中断源的中断优先权,可以采用软件和硬件两种方法。 1. 用软件确定中断优先权INTR …D7 ~D0A15~A0三态 缓冲器 G 译 码锁 存 器中断 源A 中断源B 中断源C……M / IORD优先权管理电路 1.用软件确定中断优先权在中断服务中 读入请求状态INTR … 中断 源A 中断源B 中断源C…A申 请 ?Y为中断源A 服务的程序段 为中断源B 服务的程序段 为中断源C 服务的程序段B申请?YD7 ~D0三态 缓冲器…锁 存 器A15~A0G译 码C申请?Y……M IORD中 断 返 回优先权管理电路软件查询流程图 ? 采用软件查询方式的特点:? 询问的次序,即为优先权的次序。 ? 硬件简单。? 由查询转至相应的服务程序的时间长,尤其在中断源较多的情况。 2.硬件方式比较器 INTR 1 2 A &B A2 A1 A0 B2 B1 B08-3 优先权 编码器中断请求0 中断请求1 中断请求2 …………7优先权 寄存器D7 ~ D0比较失效编码器和比较器的优先权排队电路(1) 若CPU 未处理任何中断,则“ 优先 权失 效” 信号为高,当任一中断源请求 中断时,通过门2发出INTR 信号。 2.硬件方式比较器 INTR 中断请求0 中断请求1 中断请求2 …………71 × 2 ×A &BA2 A1 A0B2 B1 B0 比较失效8-3 优先权 编码器优先权 寄存器D7 ~ D0编码器和比较器的优先权排队电路(2) 若CPU 正在进行中断处理,当某一中 断源请求中断时,能否向CPU 发出INTR 信号,受比较器的控制。 2. 硬件方式比较器 INTR 1 2 中断请求0 中断请求1 中断请求2 …………7A &BA2 A1 A0 B2 B1 B0 比较失效8-3 优先权 编码器优先权 寄存器D7 ~ D0编码器和比较器的优先权排队电路思考题:与软件查询方式比较,采用硬件方式有何特点? 六、8086CPU 响应外部中断的过程CPU 在每一个指令周期的最后一个总线周期的最后一个T状态采样INTR 或NMI信号线。 下面以INTR 为例,说明8086 CPU 响应中断的过程。 执行一条指令No取下一条指令最后一个总线周期的最后一个T状态?NoNo有INTR?YesYes中断开放? (FR中的IF=1?)Yes发INTA信号 关中断 (置FR中IF=0) 断号地址(CS. IP)入栈 FR 入栈识别中断源,转入相应中断服务程序 保护现场 中断服务处理 恢复现场 开中断STI (置FR中IF=1) 中断返回IRET 讨论:1. 为什么要在中断服务程序中执行STI指令?2. STI 指令在中断服务程序中的不同位 置时,对CPU 处理中断有何影响? 七、小结中断过程由计算机的中断系统,配合用户设计的中断服务程序来实现。中断应具备以下功能:主程序1. 实现断点地址的保护与恢复。中断服务1中断服务2 (高优先级)2. 实现现状信息的保护。3. 实现中断优先权的排队。4. 实现中断的嵌套。 8.5一、中断类型8086 能 处 理 256 种 中 断,分为两大 类:外部中断 和内部中断。 其中断分类如 右图8086的中断系统INT n 指令非屏蔽中断请求NMI中断逻辑INTR中断 控制系统 (8259A) INT 3 指令 INTO 指令 单步 中断 除数为 0中断 … 硬件中断可屏蔽 中断请求软件中断8086的中断分类 1. 外部中断 (硬件中断) (1) 非屏蔽中断 NMI (类型号为2) 有效,不受FR 中IF 的影响,常用于处理系统的重大故障。 (2) 可屏蔽的中断INTR高有效,CPU 是否响应,取决于 FR 中IF 的状态。常用于各种外 设的中断。 2. 内部中断 (软件中断) 通常由三种情况引起: (1) INT n 指令中断 (n 为中断类型号) (2) 处理CPU 某些错误的中断 ? 除法错中断 (中断类型号为0)? 溢出中断 (INTO) (中断类型号为4) (3) 为调试程序设置的中断a 单步中断 当FR 中TF = 1时,每执行一条指令,CPU 产生类型为1 的单步中断。 b 断点中断设置断点实际上是把指令“ INT 3” 插入 到程序中,CPU 每执行到断点处的 “ INT 3” 指令,便产生类型为3 的中断。 二、中断优先级8086 系统中,中断优先级的次序为: 高 内部中断 (除法错、INTO、INT n) NMI INTR低单步中断 三、中断向量表CPU 响应中断后,如何得到中断 服务程序的入口地址 (中断向量),转入 到中断服务程序?8086CPU 通过建立 中断向量表的方法解决。 类型255CS IP0000 : 03 FFH供用户定义的中断 (共224个)中 断 向?0000 : 007 FH 0000 : 007 EH?类型32 类型31量 (中断服务程序入口地 址) 在表中的 地址 = 中断0000 : 0014 H 0000 : 0013 H 溢出中断CSIP保留的中断 (共27个)?类型5 类型4 CS 类型3 IP CS 类型2 类型1 类型0 IP?CS IP0000 : 0010 H 0000 : 000F H 0000 : 000C H 0000 : 000B H 0000 : 0008 H 0000 : 0007 H 0000 : 0004 H 0000 : 0003 H 0000 : 0000 H类型号 × 4断点中断 非屏蔽中断 单步中断专用的中断 (共5个)CSIPCSIP除数为 0 中断中断向量表 四、中断向量的装入BIOS 负责0~1FH 共32个中断向 量的装入。用户若想装入自己的中断 向量到向量表中的,可用以下方法: 1. 用STOS 指令填空中断向量表 假设类型号为60H 的中断向量为 SEG_INTR: OFFSET_INTR。? CLI CLD MOV MOV MOV MOV STOSWAX, 0 ES, AX DI, 4?60H AX, OFFSET_INTR; DI 指向表中对应位置 ; 取偏移地址 ; AL?[DI], AH?[DI+1] ;DI+2?DI MOV AX, SEG_INTR STOSW STI ?; 取段基址 2. 利用MOV 指令写入中断向量?CLI MOV AX, 00HMOVMOV MOV MOV MOV MOVES, AXBX, 4?60H AX, OFFSET_INTR ES:[BX], AX AX, SEG_INTR ES:[BX+2], AX ; 装入段基址 ; 装入编程地址 ; BX 指向表中对应位置方法1,2由用户直接操作中断向量表,因 此,要熟悉中断向量表的具体组织。 3. 利用DOS 功能调用“ INT 21H ” 的AH = 25 H 装入中断向量MOV MOV AL, 60H AH, 25H ; 类型号?AL ;功能号25H?AHMOVMOV MOVDX, SEG_INTRDS, DX DX, OFFSET_INTR ;DS:DX=中断向量INT21H方法3由DOS功能调用具体实现,中断 向量表对用户是透明的。 五、8086CPU 转入中断服务程序的过程1. 取类型号;2. 计算向量地址;3. 根据向量地址查表,将偏移地址送IP,段基址送CS;4. 转入中断服务程序,进行中断处理。 MEM 0 : 0000H…(2) CPU (3) IP CS 1800H F000H 21H 21H (1)00H 18H 00H F0H0 : 0084H0 : 0087H中 断 向 量 表…0 : 03FFH F000 : 1800H… …例:执行 INT(4)PUSH??向量地址= 21H ? 4 =84HIRET8086转入中断处理程序的过程…1. 取类型号;2. 计算向量地址; 3. 根据向量地址查表,将偏移地址送IP,段基址送CS; 4. 转入中断服务程序,进行中断处理。 8.68259A 可编程中断控制器在微机系统中,可以使用8259A 扩展外部中断,Intel 8259A 可编程中断控制器,主要有以下功能: 1. 1片8259A 能管理8级中断,通过级联用9 片8259A可以构成64 级主从式中断系统。 2. 每一级中断可以屏蔽或允许。 3. 在中断响应周期,8259A 可提供相应的中断类型号。 4. 可编程使8259A 工作在多种不同的方式。 一、8259A 的内部结构与引脚信号INT AD0~D7INT 控制逻辑数据总线 缓冲器RDWRA0读写控制 逻辑…IR7CSCAS0 CAS1 CAS2中断服务 寄存器 ISR优先权 电路 PR中断请求 寄存器 IRRIR0 IR1级联缓冲 比较器 中断屏蔽寄存器IMRSP EN8259A内部逻辑框图 1. 数据总线缓冲器 8位、双向、三态,是8259A与 CPU 之间的数据接口。 D0~D7直接与CPU 数据总线的低8位 连结。 2. 读/写控制逻辑CS : 接高位地址的译码输出。A0:常常与地址信号线A0相连。RD、 与CPU的RD、 相连。 WR WR8259A的两 个端口地址CPU 通常利用:OUT 指令,WR与CS, A0配合写入有关的控制字。 IN 指令,RD与CS, A0配合读出8259 A内部 有关寄存器的内容。 3. 中断请求寄存器 IRR 8 位,若IRi 有效(“1”, ),对应位置“1”,直到IRi 得到响应。 因此,IRR记录外中断源IRi的请求信息。 4. 中断服务寄存器 ISR8位,当IRi得到响应时,对应位置“1”。ISR 记录正在处理的IRi,当中断嵌套时,可能多位置“ 1”。因此,ISR记录CPU对IRi的响应情况。 5. 中断屏蔽寄存器 IMR8位,某位置“ 1”,对应IRi 禁止产生中断。因此,IMR控制是否对IRi进行屏蔽操作。 6. 优先权电路实现优先权的判断与处理,采用编码 器和比较器电路,如下图所示。D0 D1 D2 D3 D4 D5 D6 D7 ISR 编 码 器?1中 断 请 求 优 先 级 编 码 器& &中 断 屏 蔽 寄 存 器 IMR IR0比 较 器B0 B0 B0 A &B A0 A1 A2中 断 请 求 寄 存 器IR1 IR2 IR3 IR4 IR5INT&IRR IR6 IR78259A中的中断优先权电路图7-12 中断优先权电路 7. 控制逻辑(1) 由IRR 和PR 的情况,向8259A 其它部 件发出控制信息。 (2)向CPU 发出INT 信号,接收CPU INT A 信号。 8. 级联缓冲/比较器 可以实现8259A的级联,扩展外中断。(1) CAS2、CAS1、CAS0 引脚问题:8259A级联时,如何确定主 8259A的 IRi接有从片,从片接入主8259A的IRi? ① 主8259A: CAS2~CAS0 输出,输出被 响应的从片的标志码。 ② 从8259A: CAS2~CAS0 输入,接收主片发出的标志码, 与自己的标志码比较。若相等,下一个INTA信号到来 时,将中断类型号送至数据总线。ABCBDBCS A0INTA8259A 从片 A SP/EN IR7 GND …INT CAS0 CAS1 CAS2 IR0CS A0INTA 8259A 从片 BINT CAS0 CAS1 CAS2 IR0CS A0 INTA CAS0 8259A CAS1 主片 CAS2 SP/ENIR7 IR6 … IR3 VccINTSP/EN IR7 GND…IR0从片A标去码:011,从片B标志码:110 (2) SP / EN引脚① 当8259A 工作于非缓冲方式 (直接与CPU 的DB 相连)SP 为输入,是主从芯片定义引脚。SP ? 1, 主片 SP ? 0, 从片 ② 当8259A 工作于缓冲方式 (通过总线缓冲器与CPU 的DB 相连)EN 为输出,用于CPU与8259A传送数据信息 时启动数据总线驱动器。CPUDB数据总线驱动器OEDB8259AEN此时,主从芯片的定义由ICW4中的M/S实现。 CS RD WRD7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND1 2 3 4 5 6 7 8 9 10 11 12 13 1428 27 26 25 24 23 22 21 20 19 18 17 16 15Vcc A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP EN CAS28259A 的引脚图 图7-13 8259A 引脚图 二、8259A 的中断处理过程下面以8259A单片使用为例,说明其中断 处理过程。1、当一条或多条中断请求线IR0 ~ IR7变高时, 设置相应的IRR位。 2、PR对中断优先权和中断屏蔽寄存器的状态 进行判断之后,如某中断优先权最高且为 允 许 中 断 状 态 , 就 向 CPU 发 高 电 平 信 号 INT,请求中断服务。 3、CPU响应中断时,送回应答信号 INTA 。4、8259A接到来自CPU的第一个信号INTA时,当前中断服务寄存器(ISR)中相应位置位,并把IRR中相应位复位。同时,8259A准备向数据总线发送中断类型号。 5、在8259A发送中断类型号的后一个INTA 脉冲期间,如果是在AEOI(自动结束中断)方式 下,在这个 INTA 脉冲结束时复位ISR的相 应位。在非自动中断结束方式下,ISR相应 位要由中断服务程序结束时发出的EOI命令 来复位。 三、8259A 的工作方式8259A有多种工作方式,这些工作方式可以通过初始化命令字(ICW1?ICW4)和操作命令字(OCW1?OCW4)来设置。 1. 引入中断请求的方式?边沿触发方式。以上跳沿向8259A请求中 断,上跳沿后可一直维持高电平,不会再产生 中断。?电平触发方式。以高电平申请中断,但 在响应中断后必须及时清除高电平,以免引起 第二次误中断。?中断查询方式。外设通过8259A申请中断, 但8259A却不使用INT信号向CPU申请中断, CPU用软件查询确定中断源,并为其服务。 2. 连接系统总线的方式? 在大系统中,要求数据总线有总线缓冲 器。8259A与这种带总线缓冲器的系统总线连 接的方式称缓冲器方式。 ?在小系统中,则8259A不需要总线缓冲器 而是将其直接接至数据总线。8259A与这种不 需总线缓冲器而直接连到系统总线的方式称非 缓冲器方式。 3. 屏蔽中断源的方式 ? 普通屏蔽方式。利用操作命令字OCW1, 使屏蔽寄存器IMR中的一位或几位置1来屏蔽 一个或几个中断源的中断请求。若要开放某 一个中断源的中断请求,则将IMR中相应的 位置0。 ?特殊屏蔽方式。在某些场合,在执行某 一个中断服务程序时,要求允许另一个优先 级比它低的中断请求被响应,此时可采用特 殊屏蔽方式。它可通过OCW3 的D6D5 =11来 设定。 4. 优先级排队的方式 ?全嵌套方式。在此种方式下中断优先级 按0 ? 7顺序进行排队,只允许中断级别高的 中断源去中断中断级别低的中断服务程序。?特殊全嵌套方式。它和全嵌套方式基本 相同,所不同的是在特殊全嵌套方式下,当 执行某一级中断服务程序时,可响应同级的 中断请求,从而实现对同级中断请求的特殊 嵌套(8259A级联使用时,某从片的8个中断源 对主片来说,可以认为是同级的)。特殊全嵌 套方式用于多片级联。 ?优先级自动循环方式。在这种方式下,优先级顺序不是固定不变的,一个设备得到 中断服务后,其优先级自动降为最低。其初 始的优先级顺序规定为IR0 ,IR1 ,…,IR7 。 该方式用在系统中多个中断源优先级相等的场合。 ?优先级特殊循环方式。这种方式与优先 级自动循环方式唯一的区别是,其初始的优 先级顺序不是固定IR0 为最高,然后开始循环, 而是由程序指定IR0 ? IR7中任意一个为最高优先级,然后再按顺序自动循环,决定优先级。 5. 结束中断的处理方式?自动中断结束方式。在中断服务程序中, 中断返回之前,不需发中断结束命令就会自 动清除该中断源所对应的ISR位(实际上在 CPU发第二个信号时,8259即自动消除ISR中 的对应位)。这种方式用在多个中断不会嵌 套的系统中。?非自动中断结束方式。在中断服务程序 返回之前,必须发中断结束命令才能使ISR中 的当前服务位清除。 四、8259A 的初始化命令字8259A 初始化编程时,有四个初始化命令 字 ICW(Initialiation Command Word) , 即ICW1?ICW4 ;8259A工作期间,有三个操作命令 字 OCW(Operation Command Word) , 即OCW1~OCW3。 8259A 只有两个端口地址 A0=0 偶地址端口 1 奇地址端口因 此 , 对 8259A 读/写操作时,要 注意控制字写入的端口地址 写入的顺序 有关的标志位 1. ICW1(IRi 触发方式,是否单片使用,是否写入ICW4)A00D7 D6 D5 D4? ? ?D3D2 D1D01 LTIM ? SNGL IC4标志位 ① LTIM:规定IRi的触发方式1= 0高电平触发触发 ② SNGL:是否单片使用1= 0单片使用级联使用 ③ IC4:是否写入ICW41=后面写入ICW4 不写入ICW40 例:某8086微机系统中,使用单片8259A, 中断请求信号为上升沿触发,需要设置ICW4, 端口地址为20H,21H,则其初始化命令字 ICW1应为:H,设置ICW1的指 令为:MOV AL,13HOUT20H,AL 2. ICW2 (中断类型号的高5位)A01D7 D6 D5 D4 D3 D2 D1 D0T7 T6 T5 T4 T3 ? ? ?IRi 对应中断类型号的高5位(中断类型号的低3位由8259A 自动编码产生) T7 T6 T5 T4 T3 T2 T1 T0 由ICW2规定 0 0 0 0 0 1 IR0 IR10 1 0? 1 1 1IR2? IR7 例:某PC机中8个可屏蔽中断(IR0 ? IR7)的类型号为08H ? 0FH,A0 =1,端口地址为21H,则ICW2为:08H,设置ICW2的指令为:MOVOUTAL,08H21H,AL 3. ICW3(级联时,主从芯片的级联引脚)1若ICW1 中SNGL= 0不写入ICW3写入ICW3 (1) 写给主片的ICW3A01D7 D6 D5 D4 D3 D2 D1 D0S7 S6 S5 S4 S3 S2 S1 S0Si = 1, 表示主片IRi上接有从片。 (2) 写给从片的ICW3 A01D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 ID2 ID1 ID0 从片的标志码ID2 ID1 ID0该从片00 100 ? 101 1接入主片的IR0接入主片的IR1 ? 接入主片的IR7 例:某8086微机系统中,主片8259A的IR2 ,IR6 引脚上分别接有从片8259A,则主、从片的ICW3初始 化命令字设置如下:主片初始化命令字:(口地址设为20H, 21H)MOV AL,44H ;44H为主片的ICW3,表示其IR6, IR2上接有从片OUT21H,AL;将ICW3写入奇地址端口从片1的初始化命令:(口地址为30H,31H) MOV OUT AL,02H 31H,AL从片2的初始化命令:(口地址为40H,41H) MOV OUT AL,06H 41H,AL 4. ICW4 A01D7 D6 D50 0D4D3D2M/SD1AEOID010 SFNM BUF标志位用于系统 (1) SFNM: 规定8259A中断的嵌套方式 0 正常的完全嵌套方式 SFNM= 1 特殊的完全嵌套方式 (单片使用时,两种方式一样。) ① 正常的完全嵌套方式高级的中断 ② 特殊的完全嵌套方式同级的或高 级的中断注意:级联使用时,某一从片的IRi对 主片来说是同级的(同级中断)。 此处,要理解同级中断的概念! 例如:INTA(from CPU) INTR(to CPU)INTAINTINTACAS0 CAS0CAS1 CAS2 IR7 IR6INT从8259ACAS1 CAS2主8259AIR7IR6… …IR0… …IR0若主、从8259A工作于固定优先权方式,从片 的优先级为IR0?IR1 ?? IR7。但对主片来说,从 片的IR0 ~IR7 是同级的。 (2) BUF1缓冲方式=0 非缓冲方式 (3) M/S ① 当8259A 工作于缓冲方式时 (BUF=1) , M/S用于定义主、从芯片。1M/S = 0主8259A从8259A ② 当8259A工作于非缓冲方式时 (BUF = 0),SP引脚为输入,用于定义主从芯片,此时M/S 不起作用。 (4) AEOI: 规定中断的结束方式 (如何使ISR中对应位清0) ① AEOI = 1 自动中断结束方式 当CPU 发出第二个 INTA 后,ISR 中 的相应位复位,此时,不能实现中断嵌 套。 ② AEOI = 0 非自动中断结束方式由程序发出EOI 命令 (由8259A 的 OCW 实现),使ISR 中相应位复位。 五、8259A 的初始化编程逻辑用ICW1设置:是否级联? 请求信号的触发方式 后面是否用ICW4 用ICW2设中断类型码 是否为级联方式? Y 本片为主片吗? 设ICW3各位对应 IR0~IR 7 的连接状况 N NN 设ICW3 高5位为0; 低3位为标识码用ICW4 吗?注意:级联 使用时,主、 从 8259A 都 要作初始化 操作。Y 用 ICW4 设:为特殊全嵌套方式? 为缓冲方式? 为自动EOI方式? 为系统? END8259A的初始化流程 例:PC/XT 系统中8259A的初始化编程20H、21H为8259A的端口地址, 在BIOS 中,8259A的初始化程序段如下:MOV AL, 13H OUT 20H, AL ; ICW2=08H, IR0~IR7对应的中断类型号 ; 为08H~0FH OUT 21H, AL ; ICW4=09H, 正常的嵌套方式, ; 非自动中断结束方式 MOV AL, 09H ; ICW1=B, 边沿触发,单片使用, ; 要 ICW4. MOV AL, 08HOUT 21H,AL 六、8259A 的操作命令字对8259A 进行初始化编程后,8259A 作好了接收中断请求输入的准备,在 8259A 工作期间可由操作命令字OCW1~ OCW3 规定其各种工作方式。 1. OCW1(中断屏蔽操作命令字) 设置或清除IMR 的各个位。 A01D7M7………… …………D0M0Mi=1 表示IRi被屏蔽 例:设OCW1 =06H,则表示IR1 ,IR2 两 个引脚上的中断申请被屏蔽,其他的中断申请 (IR0,IR3?IR7)则得到允许。8259A编程指令为:MOV AL,B OUT 21H,AL ;OCW1屏蔽字 ;屏蔽字写入奇地址口 ;的 OCW1寄存器 2. OCW2 (优先权循环方式和中断结束方式 操作命令字)A00D7 D6 D5 D4 D3 D2 D1 D0R SL EOI 0 0 L2 L1 L0标志位 有两个作用:(1) 8259A 工作于非自动中断结束方式时,如 何复位ISR 中的对应位?有两种方法: SFNM ① 一般方法:令SL = 0, EOI =1 将OCW2写入8259A后,将刚刚被服务的IRi对应位复位。 ② 特殊方法:令 SL = 1, EOI = 1 写入OCW2后,使L2L1L0指定的位复位。 L2 L1 L0 0 0 0 ISR中的Di D0 对应的IRi IR00 0 1? 1 1 1D1? D7IR1? IR7 (2) 定义8259A 的优先权工作方法 ①R=0 固定优先权方式IR0 ? IR1 ? … ? IR7 ② R = 1, SL = 0 优先权自动循环方式 例: IR7 初始优 7 先权为:若ISR = 0IR66 1IR55 0IR44 1IR33 0IR22 0IR11 0IR00 0则 当 IR4 服务完毕 后,优先 2 权为:1076543 ③ R = 1, SL = 1 优先权特殊循环方式 此时,L2L1L0 规定循环开始时的最低优先权 例: 1 1 ? 0 0 1 0 1IR5优先权最低 此时,优先权为: IR7 1 IR6 0 IR5 IR4 7 6 IR3 5 IR2 4 IR1 3 IR0 2 例:若使8086系统中8259A的优先级顺序 为IR3, IR4, IR5, IR6 IR7, IR0 IR1, IR2,试编写 一段程序实现该优先顺序,设8259A的偶地址 为20H。 根据题意要求,为实现上述优先级顺序, 应先确定OCW2 ,然后将它写入8259A的偶地 址端口: OCW2:MOV OUTR SL EOI 0 0 L2 L1 L011000010AL,0C2H 20H,AL;OCW2 ;把OCW2 写入8259A的偶 地址端口。 例:试编一段程序,用以清除8086系统中 8259A的ISR第6位(ISR6),8259A的偶地址 为20H。 为实现题意要求,应先确定OCW2的内容, 然后将OCW2写入8259A的偶地址端口。 OCW2:R 0 SL 1 EOI 1 0 0 0 0 L2 1 L1 1 L0 0MOV OUTAL,66H 20H,AL;OCW2 ;把OCW2写入8259A的偶 地址端口。 3. OCW3 (特殊屏蔽方式和中断查询方式操作命令字)A00D70 ESMM SMM 0 1D0P RR RIS标志位 有三个作用: (1) 设置和撤消特殊屏蔽工作方式 ① 正常的屏蔽方式 由OCW1 设置IMR 实现 ② 特殊的屏蔽工作方式 正常的屏蔽方式 设置特殊的屏蔽方式ESMM ? 1 令 SMM ? 1只要IMR中的对应位没有置“ 1”, 8259A就可以接受其中断请求。 ESMM ? 0 撤消特殊的屏蔽方式 令 SMM ? 1 正常的屏蔽方式 因此,可以通过设置或撤消特殊的屏蔽工作 方式,动态改变优先权的结构。 (2) 为CPU 读取8259A内部寄存器提供选择 8259A 中的IMR由OCW1设置,对应奇地址端口,可以写入,也可以读出。 IN AL, INTA1 ; IMR ? AL ② 8259A 中IRR、ISR 只能读出,不能写入, 都对应偶地址端口。此时,可先写入 OCW3 ,OCW3 中的RR、RIS 规定从偶地 址端口读出的是IRR 或ISR 的值。MOV OUT AL, OCW3 INTA0, ALINAL, INTA0; 若OCW3中 RR RIS 11则读出的是 ISRIRR10 例:试编写一段程序,以实现将8086系统 中8259A的IRR,ISR,IMR三寄存器的内容 读出并送入存储器从0080H开始的数组中,设 8259A的偶地址为20H,奇地址为21H。MOV AL,0AH ;OCW3=0AH, 指出要读IRROUT 20H,ALIN AL,20H MOV [080H],AL MOV AL,0BH OUT 20H,AL IN AL,20H;OCW3写入8259A的偶地址端口;读回IRR的内容 ;将IRR的内容存入从080H开始的单元中 ;OCW3=0BH,指出要读ISR ;读回ISR的内容 ;将ISR的内容存入内容MOV [ 081H ],ALINAL,21H;读回IMR;IMR内容存入内存MOV [082H],AL (3) 使8259A 和CPU 的通信方式由中断方式 ? 查询方式 某些情况下,当IF设置为0时,用查询 方式为中断源服务。令OCW3 中的P = 1,写入OCW3后, 若之前有IRi有效,8259A 把CPU 的下一个 读信号看作 INTA信号,使ISR 中最高优先 权的某一位置位,同时送以下数据至DB。MOV OUT IN AL, OCW3 INTA0, AL AL, INTA0 ; 其中 P=1 ; 发OCW3 ; 读偶地址端口 此时,AL 中的数据D7I ? ? ? ?D0W2 W1 W0当前最高优先权 1 表示有中断请求 IRi对应的编 码 0 没有中断请求 0 0 0 IR00 0 1? 1 1 1IR1? IR7 例:假如8259A的IR2输入引脚上有中断申 请,但此时8086CPU内部的中断允许标志IF= 0,8086CPU应如何知道其8259A的IR2输入引 脚上有中断请求?为使8086CPU知道其8259A IR2引脚上有中 断申请,可用中断查询方式来解决(即CPU先 发一个查询命令OCW3 ,然后接收8259A的查 询字),其程序如下: OCW3为:00ESMM SMM0 00 01 1P 1RR 0RIS 0MOV OUT INAL,0CH 20H,AL AL,20H;P=1查命令OCW3 ;输出查询命令,即OCW3 写入8259A的偶地址端口 ;读8259A的查询字 七、8259A 对ICW、OCW的识别8259A 只占两个端口,但ICW 有4个, OCW有3个。 1. A0 = 0 (偶地址端口) 写入的有:ICW1,(D4=1)OCW2,? D3 ? 0 ? ? ? ? D4 ? 0 ?OCW3? D3 ? 1 ? ? ? ? D4 ? 0 ?用标志位识别 2. A0 = 1 (奇地址端口) 写入的有: ICW2 ? ICW3 ? ICW4 ? OCW1按写入顺序识别注意:初始化过程中可能没有ICW3或ICW4,应根据具体情况确定。 8.7输入输出及8259A应用举例一、输入输出应用举例 (流水灯及其控制)1. 电路原理及说明 74LS273锁存器的输出控制LED发光 管的亮,暗(1: 亮,0: 暗),由CPU通过74LS244缓冲器构成的输入口读取S1 ~S4的开关状态,进行左,右移位以确定流水灯的方向和显示模式。 D7 D6 D5 D4 D3 D2 D1 D074LS273 D8 O8 D7 O7 D6 O6 D5 O5 D4 O4 D3 O3 D2 O2 D1 O1 CLK CLR? ? ? ?+5V+5VY5 IOW 74LS244 1Y1 1A1 1Y2 1A2 1Y3 1A3 1Y4 1A42A1 2A2 2A3 2A4IOR2Y1 2Y2 2Y3 2Y4 S1S2 S3 S41G 2GY5=350H-353H 2. 源程序及其说明DATA SEGMENT DIS0 DIS1 DIS2 DIS3 DIS4 DB ‘PRESS ANY 2 OF THE KEYS TO QUIT ’ , 24H DB DB DB DB ‘S1:LEFT-SHIFT ,24H ‘S2;RIGHT-SHIFT’ ,24H ‘S3;1H-7L’,24H ‘S4;7H-1L’,24H ;以上为提示信息 FLAG1 FLAG2 DATA ENDS DB 0 DB 0 ;左移 ;1 亮 7 暗 CODE MAINSEGMENT PROG FARASSUME CS:CODE,DS:DATASTART:MOV AL,3 ;屏幕初始化,设置视屏显示模式为03h, ;80×25行16色 MOV INT MOV MOV AH,0 10H ;BIOS视频服务中断AX,DATA DS,AX MOVAH,2;在CRT上显示提示说明MOVMOV INTBH,0DX,0614H 10H;页号;DH=行号,DL=列号 置光标位置MOVMOV INTDX,OFFSET DIS0 ;要显示字符串:DIS0―DIS4的内容AH,3 21H ;DOS功能调用号 ; DOS功能调用 ;重置光标位置,显示提示信息 “S1:LEFT―SHIFT”MOVMOV MOVAH,2BH,0 DX,0914HINTMOV MOV INT10HDX,OFFSET DIS1 AH,9 21H ;重置光标位置,显示提示信息 “S2:RIGHT―SHIFT”MOVMOV MOV INT MOVAH,2BH,0 DX,0A14H 10H DX,OFFSET DIS2MOVINTAH,921H ;重置光标位置,显示提示信息“S3:1H―7L”MOV MOV MOV INT MOV MOV INT AH,2 BH,0 DX,0B14H 10H DX,OFFSET DIS3 AH,9 21H ;重置光标位置,显示提示信息“S4:1H―7L” MOV MOV MOV AH,2 BH,0 DX,0C14HINTMOV MOV INT10HDX,OFFSET DIS4 AH,9 21H MOVAA: MOV MOVAH,01HDX,0350H AL,AH;设输出控制字01H (1亮7暗)OUTMOVDX,ALAL,FLAG1 ;取移位标志,FLAG=0,左移; ;FLAG=FFH,右移CMPJNE ROLAL,0RR1 AH,1JMPRR1: RORRRAH,1;转读按键程序 RR: MOVIN AND CMP JNE BBZZ:MOVDX,0350HAL,DX AL,0F0H AL,0F0H KP CX,5;读按键;有键按下,转KP键处理 ;延时控制,延时时间过短,可置 ;CX=1000,0等BB:MOVBX, 0 BX BB1 BB AA ;转流水灯控制输出BB1: DEC JNZ LOOP JMP KP: CMP JNE MOVAL,70H KP1 FLAG1,0; 键处理; 设置左移标志FLAG1=0JMPKP1: CMP JNEBBZZAL,0B0H KP2;转延时控制输出MOVFLAG1,0FFH;S2按下,设置右移标志;FLAG1=FFHJMPBBZZ;转延时控制输出 KP2: CMPAL,0D0HJNEMOVKP3AL,FLAG2 ;S3按下,显示反转判断, ;FLAG2=0,1亮7暗; ;FLAG2=FFH,7亮1暗CMPAL, 0FFHJNEXOR MOV KP20;JMPKP20AH,0FFH FLAG2,0 BBZZ ;转延时控制输出 ; 显示反转 KP3: CMP JNEAL,0E0H BACK ;同时按下两个以上键,程序终止退出MOVCMP JNE XOR MOVAL,FLAG2AL,0 KP30 AH,0FFH FLAG2,0FFH;显示反转判别; 显示反转KP30;JMPBBZZ BACK:MOVAL,0;关灯,程序终止退出MOVOUT MOV INT MAIN ENDP CODE ENDDX,0350HDX,AL AX,4C00H 21HENDS START 二、8259A应用举例1. 电路原理及说明采用微机主板上的8259A中断控制器, 中断请求信息接至IRQ2,可选择8253的OUT2 和OUT1、ADC0809的EOC或外部中断请求信号INT1 为中断源。本例中选择INT1 为中断源,在主程序中显示流水灯(1亮7暗),按下S1,流水灯反转(1暗7亮)并右移。 D2 D0 D3 D1Y4IOR74LS244 2A1 2Y1 2A2 2Y2 2A3 2Y3 2A4 2Y4 1Y1 1A1 1Y2 1A2 1Y3 1A3 1Y4 1A4 1G 2GADC8889 EOC 8253 OUT18253 OUT2IRQ2 INT1S1Y4=358H-353H+5V 2. 源程序及其说明TCC1 TCC2 DATA EQU EQU 0FFFFH 0FFFFH DB ‘[S1]: INTERRUPT ’, 24H; 提示信息; DB ‘[S2-S4]: QUIT, 24H ’ ; 提示信息; ;输出控制字(LED)SEGMENT DA DDADDBB DB 01H DATA ENDSSTACK SEGMENT PARA STACK ‘STACK’ DW STACK ENDS 256 DUP (?) CODESEGMENTMAINPROCFARASSUME CS: CODE, DS: DATA, ES: DATA START: PUSH MOV PUSH DS AX, 0 AXMOVMOV MOVAX, DATAES, AX DS, AX ; 设置窗口, 左上角(CH, CL), 右下角 (DH, DL) MOV MOV CX, 0 ;窗口页上滚DX, 184FHMOVMOV MOV INTBH, 7AL, 0 AH, 6 10H ; 屏幕清0 ; 调用号 ; 设置光标位置,显示提示信息 MOV AH, 2MOVMOV INT MOV MOVBH, 0DX, 0614H 10H ; 将光标设置在6行20列DX, OFFSET DA AH, 9INT21H; 显示字符串“[S1]INTERRUPT” ; 设置光标位置, 显示提示信息 MOV MOV MOV INT MOV AH, 2 BH, 0 DX, 0714H 10H ; 将光标移到7行20列位置DX, OFFSET DDAMOVINT QUIT”AH, 921H ; 显示字符串“[S1-S4]: ; 读取0AH号原中断向量,并压无栈保护 CLI MOV MOV INT PUSH ; 关中断 AL, 0AH ; 保存原有中断向量 AH, 35H 21H ES ; 读取0AH号的中断向量 ; 返回向量在ES : BX中 ; 保留读取的向量值PUSHBX ; 置入新的中断向量 PUSH DSMOVMOV MOV MOV MOVDX, OFFSET SHOW ;装入中断向量AX, SEG SHOW DS, AX AL, 0AH AH, 25H ; 中断服务程序SHOW的入口地址 ; 设置0AH号中断向量 ; 即将DS : DX内容放入向量表中INTPOP21HDS ; 开放IR2 IN AL, 21H ; 读入原IMRANDOUTAL,B ; 设IMRR的D2=1, 其余位不变21H, AL ; 写1MR, 即开放1R2, 其余的屏蔽字不变STI; 开中断 ; 显示流水灯TT:MOVROL MOVAL, DDBBAL, 1 DDBB, AL; 显示流水灯MOVOUT MOV BB: MOV BB1: DEC JNZ LOOPDX, 350HDX, AL CX, 500H BX, 8000H BX BB1 BB; LED显示端口, ‘1’ 对应发光; 延时 ; 读取键值, 判断是否退出INANDAL, DXAL, 0E0H ; 读入键盘信号, 有S2-S4中任一键按下, 退出CMPJEAL, 0E0HTT ; 否,继续流水灯方式 ; 恢复原中断向量, 关灯并退出CLI IN OR AL, 21H ; 是, 准备退出 ; 写IMR AL, B ; 恢复原来的1MR,屏蔽1R2OUTPOP POP21H, ALDX DS ; 恢复原有中断向量MOVMOV INT STI MOV MOV OUTAL, 0AHAH, 25H 21H; 设置0AH号中断向量; 开中断 DX, 350H AL, 00H DX, AL ; 关闭所有的LED显示灯RETMAIN ENDP; 返回DOS ; 中断服务程序 SHOW PROC CLI PUSH PUSH AGAIN: MOV MOV ROR MOV OUT LOOP EXIT: MOV OUT POP POP IRET SHOW ENDP CODE ENDS ENDFARAX CX CX, 1000 AL, 7FH AL, 1 DX, 350H DX, AL AGAIN AL, 20H 20H, AL CX AX; 中断处理(服务)程序 ; 关中断; 保护现场 ; 流水灯反转并右移; 送中断结束命令字; 恢复现场START 完成当前指令8.8 8086CPU中断响应流程Y内部中断? N NMI? N INTR? NA标志进栈第一个中断响应周期 AD7 ~ AD0 浮空 第二个响应周期,取中断类型码完成当前指令YY内部中断?IF=1? N NYY保存TF,将IF、TF清0 断点地址进栈TF=0? YN NMI?标志进栈执行下条指令查中断向量表,转中断服务程序Y第一个中断响应周期 保护现场 Y AD7 ~ AD0 浮空 IF=1? 查中断向量表,转中断服务程序 第二个响应周期,取中断类型码 N Y 中断服务 保护现场 TF=0? N 恢复现场断点地址进栈 中断服务 恢复现场 开中断,返回N INTR?保存TF,将IF、TF清0执行下条指令 YNA 开中断,返回中断响应流程 完成当前指令内部中断? NYY NMI? N Y INTR? N IF=1? N Y 第一个中断响应周期 AD7 ~ AD0 浮空 第二个响应周期,取中断类型码请同学们总结:TF=0? YN标志进栈执行下条指令 保存TF,将IF、TF清0 断点地址进栈1. 8086CPU各种类型中断的优先级;查中断向量表,转中断服务程序 保护现场 中断服务2. CPU响应INTR的条件;3. INTR与其它类型中断响应过程的异同。恢复现场 开中断,返回中断响应流程 CS IP CSIP INT AD0~D7INT数据总线 缓冲器控制逻辑RDWRA0读写控制 逻辑…CSCAS0 CAS1 CAS2 SP EN中断服务 寄存器 ISR优先权 电路 PR中断请求 寄存器 IRRIR0 IR1 IR7级联缓冲 比较器中断屏蔽寄存器IMR AB CBDBCS A0INTA8259A 从片 AINT CAS0 CAS1 CAS2CS A0 INTA8259A 从片 BINT CAS0 CAS1 CAS2 IR0CS A0 INTA INT CAS0 8259A CAS1 主片 CAS2SP/EN IR7 IR6 … IR3SP/EN IR7 GND…IR0SP/EN IR7 GND…IR0Vcc
更多相关文档

我要回帖

更多关于 路由器直接连接网线 的文章

 

随机推荐