第五章 中断和异常 Interrupt and Exception

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

1 I/O 设备访问方式和类型. 2 Overview n The two main jobs of a computer: l I/O (Input/Output) l processing n The control of devices connneted to the computer is.
微型计算机原理及其应用 ——第8章:中断系统与中断控制器8259A
微型计算机原理及应用.
第2章 微处理器 2.1 概述 /8086微处理器 微处理器 X86/Pentium微处理器
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
操作系统结构.
CHAP 2 Computer-System Structures 计算机系统结构
Chapter 2: Computer-System Structures计算机系统结构
第10章 DOS功能调用与BIOS中断调用.
第8章 中 断 8.1 概 述 为什么要用中断 中断的出现,会带来以下好处。 (1)同步操作 (2)实现实时处理 (3)故障处理.
大连理工大学软件学院 软件工程系 赖晓晨 计算机组成与结构 大连理工大学软件学院 软件工程系 赖晓晨
第五章 微处理器总线操作与时序 三、总线时序 一、 8086/8088引脚 二、最小模式和最大模式.
汇编语言与接口技术 教师:范新民.
输入/输出及接口 输入/输出的传送方式 中断技术 80x86/Pentium中断系统 8259A可编程中断控制器 中断程序设计
4-10 STM Timer/Counter 與比較吻合輸出
第一章 概述.
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
第7章 中断与异常.
第7章 中断与异常.
触发器和时序电路分析 刘鹏 浙江大学信息与电子工程学院 March 30, 2017 ZDMC.
汇编语言程序设计 Assembly Language Programming
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
不断变迁的闪存行业形势 Memory has changed, especially serial - from a low cost, low pin count, slow memory to an advanced, high performance memory solution to save.
指令集架構 計算機也跟人類一樣,需要提供一套完整的語言讓人們跟它充分溝通,以完成正確的計算工作。
基于硬件辅助的内核漏洞挖掘框架 闫广禄.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
5 Computer Organization (計算機組織).
第2章 16位和32位微处理器 位微处理器8086/ 位微处理器80386
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
Operating System Internals and Design principles
微程序控制器 刘鹏 Dept. ISEE Zhejiang University
計算機結構 – 概論 陳鍾誠 於金門大學.
Ch 9: Input/Output System 输入/输出系统
微机原理及应用 主讲:谢维成 西华大学 电气信息学院 1.
微机原理及应用 主讲:郑海春.
第15章 串行通信及接口电路.
第8章 中断技术 8.1 概述 8.2 中断处理过程 8.3 中断优先级和中断嵌套 8.4 可编程中断控制器Intel 8259A.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
第14章 其它DSP设计库 14.1 总线控制库 14.2 复数信号库 14.3 Gates库 14.4 状态机函数库
第8章 PCH中的常规接口.
第7章 中断 中断请求 中断响应 中断服务 中断结束 中断处理
第五章,抢占式调度(lab3).
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第六章 子程序结构 §6.1 子程序的设计方法 §6.2 嵌套与递归子程序 §6.3 子程序举例 §6.4 DOS系统功能调用.
1.3 微型计算机的结构和工作原理.
第 13 章 中断系统.
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程.
第九章 微处理器外部结构和总线操作时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
通訊實驗 實驗三 遙控車程式流程圖 姓名:顏得洋 學號:B
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
5-6 串列埠模式0輸出埠擴充實習.
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
微型计算机技术 教 学 指 导(五) 太原广播电视大学 郭建勇.
第八章 中断系统.
第六章 記憶體.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
第12章 中断 罗文坚 中国科大 计算机学院
5. Combinational Logic Analysis
第四章 MSP430數位I/O原理與實驗.
第二章 8086系统结构 /8086的存储器组织 的系统配置及引脚功能 CPU时序
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
Presentation transcript:

第五章 中断和异常 Interrupt and Exception 1,4,9,10,11,13,14,23,25,26,30,39,42,47,49,53,54,55

12.2 Types of Interrupts and Exceptions Interrupt service routine :

Types of Interrupts and Exceptions up to 256 Interrupts Interrupt types and their priority External HW interrupts low Non-maskable interrupt SW interrupts Internal Interrupts and exceptions high Reset Increasing Priority

12.3 Interrupt Vector and Interrupt Vector Tables In real-mode In protect-mode

12.3.1 Interrupt Vector Tables In a real-mode: Ex 12.1

0000:0000 68 10 A7 00 BB 13 73 05-16 00 98 03 B1 13 73 05 0000:0010 8B 01 70 00 B9 06 0E 02-40 07 0E 02 FF 03 0E 02 0000:0020 46 07 0E 02 0A 04 0E 02-3A 00 98 03 54 00 98 03 0000:0030 6E 00 98 03 88 00 98 03-A2 00 98 03 FF 03 0E 02 INT 8H: 8*4=0020h 020E:0746 - u 020E:0746 020E:0746 E87000 CALL 07B9 020E:0749 06 PUSH ES 020E:074A 1E PUSH DS 020E:074B 50 PUSH AX 020E:074C 52 PUSH DX 020E:074D B84000 MOV AX,0040 020E:0750 8ED8 MOV DS,AX

12.3.2 Interrupt Descriptor Table In a protected-mode: Interrupt gate, trap gate, task gate descriptors OFFSET 15 .. 0 SELECTOR DWORD COUNT OFFSET 31..16 P DPL 111T 0 0 0 3 4 7 23 16 15 8 24 31 T=0, Interrupt Gate, Type = 0Eh T=1, Trap Gate, Type = 0Fh P270, Fig 8.23

Int Type Sel:Offset Attributes 0000 IntG32 0008:804D69B2 DPL=0 P IDTbase=8003F400 Limit=07FF 0010:8003F400 B2 69 08 00 00 8E 4D 80-29 17 08 00 00 EE 54 F6 .i....M.).....T. 0010:8003F410 38 17 08 00 00 8E 54 F6-47 17 08 00 00 EE 54 F6 8.....T.G.....T. 0010:8003F420 96 6F 08 00 00 EE 4D 80-DE 70 08 00 00 8E 4D 80 .o....M..p....M. 0010:8003F430 56 17 08 00 00 8E 54 F6-1E 78 08 00 00 8E 4D 80 V.....T..x....M. 0010:8003F440 78 11 50 00 00 85 00 00-41 7C 08 00 00 8E 4D 80 x.P.....A|....M. 0010:8003F450 49 7D 08 00 00 8E 4D 80-65 17 08 00 00 8E 54 F6 I}....M.e.....T. 0010:8003F460 74 17 08 00 00 8E 54 F6-83 17 08 00 00 8E 54 F6 t.....T.......T. Int Type Sel:Offset Attributes 0000 IntG32 0008:804D69B2 DPL=0 P 0001 IntG32 0008:804D6B06 DPL=3 P 0002 IntG32 0008:0000111E DPL=0 P 0003 IntG32 0008:804D6E2E DPL=3 P 0004 IntG32 0008:804D6F96 DPL=3 P 0005 IntG32 0008:804D70DE DPL=0 P 0006 IntG32 0008:804D7242 DPL=0 P 0007 IntG32 0008:804D781E DPL=0 P 0008 TaskG 0050:00001178 DPL=0 P 0009 IntG32 0008:804D7C41 DPL=0 P 000A IntG32 0008:804D7D49 DPL=0 P 000B IntG32 0008:804D7E75 DPL=0 P 000C IntG32 0008:804D8042 DPL=0 P 000D IntG32 0008:804D8310 DPL=0 P OFFSET 15 .. 0 SELECTOR DWORD COUNT OFFSET 31..16 P DPL 111T 0 0 0 3 4 7 23 16 15 8 24 31

Interrupt Procedures Destination Code Segment TSS Interrupt Vector Offset Task Gate Interrupt or Trap Gate TSS Descriptor Segment Descriptor

Exceptions and Interrupts Non-maskable interrupt Maskable interrupts Exceptions Processor-detected exceptions Programmed Exceptions : INTO, INT3, INT n, BOUND Types of Exceptions Faults: reported at the instruction boundary prior to the instruction in which the exception was detected can be restarted CS and EIP -> fault instruction Traps: reported at the instruction boundary immediately after the instruction in which the exception was detected CS and EIP -> next instruction Aborts: does not always report the location of the faulted instruction does not allow restart of the pgm severe error

12.4 Interrupt Instructions

12.6 External Hardware-Interrupt Interface

12.7 Hardware-interrupt Sequence

12.7 Interrupt-acknowledge bus cycle

12.8 82C59A Programmable Interrupt Controller Features CMOS Programmable Level-sensitive or edge-triggered cascaded to expand from 8 to 64 interrupt inputs wide variety of priority schemes Block Diagram of the 82C59A

12.8.1 Block Diagram of the 82C59A

Internal Architecture of the 82C59A

8259A的内部结构 IRR—Interrupt Request Register PR---Priority Resolver ISR---In-Service Register IMR---Interrupt Mask Register ICWs---Initialization Command Words OCWs---Operation Command Words 7个CPU可访问的寄存器,分两组: 初始化命令字ICW1 ~ICW4---系统初启时设定。 操作命令字OCW1~OCW3—系统运行时,由应用程序设定(实现对中断处理的动态管理和控制). The OCWs can be written into the 8259A anytime after initialization.(手册P6-137)。

Interface signals D7-D0: host interface RD: status of IRR, ISR, IMR of the Interrupt Level WR:(ICWs and OCWs) Initialization Command Words, Operation Command Words A0: RD, WR INT: interrupt request: level-sensitive INTA, CAS2-CAS0 SP/EN: slave or master (input: cascaded mode)/enable(output: single mode or buffered mode) IRR : interrupt request register : store all interrupt levels ISR : store all the interrupt levels which are being served Priority resolver: determine the priorities; the highest priority is selected and stored into the corresponding bit of the ISR during INTA pulse IMR: 1: mask out 0: enable

片选 这是-个8位双向的三态缓冲器。当8259的片选有效时,接通内、外部数据线D7-D0,通过它传送命令,状态和中断类型码等信息。片选无效时高阻态,使内、外部数据线断开。带数据总线缓冲器的接口芯片是总线兼容的。

8259A的内部结构 8259A的处理部件: 中断请求寄存器IRR-8位寄存器+控制逻辑 作用:接受并锁存来自IR0~IR7的中断请求信号 中断服务寄存器ISR 作用:保存当前正在处理的中断请求 优先级裁决器PR 作用:把新进入的中断请求和当前正在处理的中断进行比较,以决定哪一个优先级更高

8259A的内部结构 处理过程: IR0~IR7上出现某一中断请求信号-> IRR对应位被置“1”-> 由IMR的相应位决定是否将其屏蔽(屏蔽位=1,不通过;屏蔽位=0,通过)-> 中断请求进PR-> PR把新进入的中断请求和当前正在处理的中断进行优先级比较-> 若新进入的中断优先级高,该中断请求被送到CPU。 若CPU的IF=1,CPU完成当前指令后,响应中断,在 引脚上发出两个 负脉冲(执行两个中断响应总线周期,参见P501图12.11): INTA

8259A的内部结构 处理过程(续): 8259A收到第一个 负脉冲后 8259A收到第二个 负脉冲后: 使IRR锁存禁止,不予接受IR0~IR7上的中断请求信号;直到第二个负脉冲结束后,才又使IRR锁存允许(输入输出透明) 使ISR的相应位置“1”,以便为优先级裁决器以后的裁决提供依据。 清除IRR的相应位。 8259A收到第二个 负脉冲后: 中断类型码寄存器的内容(ICW2的内容)加上ISR的对应位送到D7-D0 如果ICW4的AEOI位为1,则在第二个 脉冲结束时,将ISR中被第一个 脉冲置“1”的位清除(自动结束);否则,要等到中断结束命令(EOI)发送后才能清除。 The cascade bus lines are normally low and will contain the slave address code from the leading edge of the first INTA pulse to the trailing edge of the last INTA pulse. INTA INTA INTA INTA

三 8259A的工作方式 1 .设置优先级的方式 (1) 全嵌套方式(FULLY NESTED MODE) 也称固定优先级方式。在这种方式下,由IRi引入的中断请求具有固定的优先级-IR0(最高)->IR7(最低). This mode is entered after initialization unless another mode is programmed. 当一个中断请求被响应时,ISR中的对应位ISn被置“1”,8259A把中断类型码放到数据总线上,然后,进入中断服务程序。一般情况下(除了“中断自动结束”方式外),在CPU发出中断结束命令(EOI)前,此对应位一直保持为“1”-封锁同级或低级的中断响应,但并不禁止比本级优先级高的中断响应-实现中断“嵌套”。

8259A的工作方式 (2) 特殊全嵌套方式(SPECIAL FULLY NESTED MODE-SFNM) 在处理某一级中断时,不但允许优先级更高的中断请求进入,也允许同级的中断请求进入。 用于主从结构的8259系统中,将主片设置为“特殊全嵌套方式”。 通过ICW4的“SFNM”位可以设置此种方式。(参见p513) CPU IR0 IR1 IR7 … 8259(主片) 8259(从片)

8259A工作方式 (3) 优先级自动循环方式(AUTOMATIC ROTATION) 优先级是循环变化的(不希望有固定的优先级差别)-一个设备的中断服务完成后,其优先级自动降为最低,而将最高优先级赋给原来比它低一级的中断请求。 开始时,优先级队列还是:IR0->IR7 ,若此时出现了IR0请求,响应IR0并处理完成后,队列变为: IR1,IR2,IR3,IR4 ,IR5 ,IR6 ,IR7,IR0。 若又出现了IR4请求,处理完IR4后,队列变为: ???_____________________________ 系统中是否采用“自动循环优先级”,由 操作命令字OCW2来设定。

8259A的工作方式 (4)优先级特殊循环方式(SPECIFIC ROTATION) 与“优先级自动循环方式”相比,只有一点不同,即可以设置开始的最低优先级。例如,设定IR4为最低优先级,那么IR5就是最高优先级,其余各级按循环方法类推。(OCW2:”110”)

8259A的工作方式 2. 屏蔽中断源的方式(中断屏蔽方式) 普通屏蔽方式 *特殊屏蔽方式(SPECIAL MASK MODE) 通过对中断屏蔽寄存器(IMR)的设定,实现对相应位为“1”的中断请求的屏蔽。 可通过OCW1使IMR的一位或几位置“1”。 *特殊屏蔽方式(SPECIAL MASK MODE) 实现: 输出OCW3(ESMM=1,SMM=1) 输出OCW1(使IMR对应于本级的位为“1”) …… 输出OCW1(使IMR对应于本级的位为“0”) 输出OCW3(ESMM=1,SMM=0) “中断级无效” 设置 撤销

8259A工作方式 3. 中断结束方式(END OF INTERRUPT-EOI) (1)中断自动结束方式(AUTOMATIC-AEOI方式) 在第二个 后沿,即完成把对应的ISR位复位。 注意:AEOI方式是在中断响应后,而不是在中断处理程序结束后将ISR位清0。这样,在中断处理过程中,8259A中就没有“正在处理”的标识。此时,若有中断请求出现,且IF=1,则无论其优先级如何(比本级高、低或相同),都将得到响应。尤其是当某一中断请求信号被CPU响应后,如不及时撤销,就会再次被响应-“二次中断” 所以,AEOI方式适合于中断请求信号的持续时间有一定限制以及不出现中断嵌套的场合。 通过ICW4可以设置AEOI方式(AEOI=1) INTA

8259A工作方式 (2)一般(常规)中断结束方式 适合于全嵌套方式。 实现:在中断服务程序结束时,向8259A发常规中断结束命令(OCW2:EOI=1,SL=0,R=0) 例:MOV AL,20H; OCW2=20H OUT 20H,AL; 端口地址=20H(偶地址) 在全嵌套方式下,ISR中最高优先级的置“1”位,正对应于当前正在处理的中断,将其清“0”,就完成了当前正在处理中断的结束操作。 IR0 IR7 1 …

8259A工作方式 (3)特殊中断结束方式(SPECIFIC EOI-SEOI) 在非全嵌套方式下,无固定的优先级序列(使用设置优先权命令或特殊屏蔽方式),此时,根据ISR的内容就无法确定刚刚所响应(处理)的中断。这种情况下,就不能用上述的EOI方式进行中断结束处理,而必须用特殊的中断结束命令SEOI--用OCW2:EOI=1,SL=1,R=0,L2~L0. 由L2~L0指定清除ISR中的哪一位。

8259A工作方式 4. 中断触发方式 电平触发方式:由IRi上的有效电平来触发“中断请求触发器”。 由ICW1的LTIM位可以设置中断触发方式。

8259A工作方式 5. 连接系统总线的方式 缓冲方式(ICW4的BUF=1) 非缓冲方式(ICW4的BUF=0) 在缓冲方式下,8259A的 作为输出( 有效),此时,由ICW4的M/S位来定义(标识)本8259A是主片还是从片。 非缓冲方式(ICW4的BUF=0) 即8259A直接与数据总线相连 在“非缓冲方式下”,8259A的 作为输入( 有效) 此时,由 端来标识本8259A是主片还是从片。 在“非缓冲方式下”,ICW4的BUF=0,M/S位无意义。 SP / EN EN SP SP / EN SP / EN

8259A工作方式 *“中断查询”方式 特点:总的说,既有中断的特点,又有查询(Polling)的特点。 外设仍然向8259A发中断请求信号,要求CPU服务。 CPU的IF=0,不响应外部的中断请求(对CPU的中断请求信号不起作用) 此时,CPU需要用软件查询方法来确认中断源,从而实现对设备的服务 先向8259A发查询命令(poll command) OCW3: 1 P

8259A的工作方式 紧接着执行一条读指令(IN指令),读出专门的“中断状态字”: 当8259A收到P=1的查询命令后,在下一个 信号将使ISR的相应位置“1”,就像收到了 一样,并把上述的“中断状态字”送到数据总线上,由CPU读入AL。 A0 IR - - - - W2 W1 W0 D7 D0 1:有设备请求服务; 0:无设备请求服务。 当前最高优先级的中断请求 RD INTA

四 8259A的级联使用

五 8259A的控制字及编程使用 1 .初始化命令字ICW1~ICW4. 8259A的初始化流程:

8259A的控制字及编程使用 2. 8259A的操作命令字OCW1~OCW3(P132) 3.关于8259A的读出操作,可以读四个方面的内容 读“中断状态字”(“查询字”): 先写入P=1的OCW3查询命令字 用偶地址读(IN AL,20H) 读IRR: 先写入OCW3(RR=1,RIS=0) 读ISR: 先写入OCW3(RR=1,RIS=1) 随时可用奇地址读IMR (IN AL,21H) 例1: IN AL,21H ; 读IMR AND AL,7FH ; 开放IR7中断 OUT 21H,AL 例2: IN AL,21H ; 读IMR OR AL,80H ; 关闭IR7中断 OUT 21H,AL

12.8.4 ICW ICW Format

ICW Format

ICW Format ICW4 format master mode (SP=1 or in buffered mode when M/S=1 and BUF =1 in ICW4) slave mode (SP =0 or if BUF=1 M/S=0 in ICW4) IF BUF =1 the buffered mode is programmed. In buffered mode SP/EN becomes an enable output and the master/slave determination is by M/S Special fully nested mode : only used in conjunction with the cascaded mode. SP/EN: SLAVE PROGRAM/ENABLE BUFFER: This is a dual function pin. When in the Buffered Mode it can be used as an output to control buffer transceivers (EN). When not in the Buffered Mode it is used as an input to designate a master (SP = 1) or slave (SP = 0).

12.8.4 ICW Ex 12.4 Ex 12.5 Ex 12.6

12.8.5 OCW1 & OCW2 Format x

OCW3 Format

12.8.5 OCW Ex 12.7 Ex 12.8 Ex 12.9

8259A的内部结构 7个寄存器的寻址问题: 规定:A0 ICW1:用偶地址写入,且D4=1 ICW2 紧接着ICW1,用奇地址写入 OCW1:也用奇地址写入,但不紧跟ICW1 OCW2 OCW3 也用偶地址写入,但D4=0 即: 采用了专门的“标识位,以节省输入地址的引脚数(仅用了A0)

82C59A Basic Operation A D D RD WR CS 1 4 3 1 IRR, ISR, Int. Level -> Data Bus * IRR(RIS=0), ISR(RIS=1) or Interrupt Level(P=0) is based on the content of OCW written before the READ op 3 1 1 IMR -> DataBus 1 DataBus -> OCW 2 1 1 DataBus -> OCW 3 1 x 1 DataBus -> ICW 1 1 x x 1 DataBus -> OCW , ICW , ICW , ICW 1 2 3 4

82C59A Basic Operation Special Mask Mode Buffered Mode Nested Mode It inhibits further interrupts at that level and enables interrupts from all other levels(lower as well as higher) that are not masked Buffered Mode Bus buffers are required Nested Mode IR(priority from 0 to 7) -> ISR Cleared by EOI or if AEOI, INTA the same or lower priority are inhibited IR0 has the highest priority Special Fully Nested Mode Cascaded Mode

8259A的控制字及编程使用 (1)设置中断向量 (2)取中断向量 把由AL指定的中断类型的中断向量DS:DX放置在中断向量表的相应位置中。 AH=25H 执行:INT 21H AL=中断类型号 DS:DX=中断向量 (2)取中断向量 把由AL指定的中断类型的中断向量从中断向量表中取到ES:BX中 预置: AH=35H 执行:INT 21H 返回: ES:BX=中断向量

8259A的控制字及编程使用 MOV AL,N; type N Interrupt 例:使用DOS功能调用存取中断向量 …. MOV AL,N; type N Interrupt MOV AH,35H; get Interrupt vector INT 21H; PUSH ES; save the old base and PUSH BX; offset of interrupt N PUSH DS; MOV AX,SEG INTHAND; MOV DS,AX; base of INTHAND in DS MOV DX, Offset INTHAND; offset in DX MOV AL, N; MOV AH, 25H; Set Interrupt Vector POP DS; …

8259A的控制字及编程使用 INTHAND: POP DX; restore the old offset POP DS; and base of interrupt MOV AL,N; MOV AH,25H; set interrupt vector INT 21H; RET ; return INTHAND: …. Interrupt Processing Routine IRET

12.8.3 82C59A Programmable Interrupt Controller Programming the 82C59A Initialization Command Words(ICWs) 2 ~ 4 bytes Operational Command Words(OCWs) Fully Nested Mode Rotating Priority Mode Special Mask Mode Poll Mode Initialization Sequence

INITIALIZATION SEQUENCE

82C59A Basic Operation Poll Mode EOI(End of Interrupt) disabling interrupt 1 - - - - w2 w1 w0 W2 W1 W0 : binary code of the highest priority level requesting service EOI(End of Interrupt) IS bit : if AEOI bit in ICW4 is set, automatically reset the IS bit otherwise use OCW2 to reset the IS bit EOI must be issued twice in the cascaded system: one for master and one for slave Specific and Nonspecific EOI

AEOI Mode IS bit is cleared by INTA signal Rotating Priority Mode A (Automatic Rotation) for Equal Priority Devices Before Rotate “IS” 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 priority 7 6 5 4 3 2 1 0 2 1 0 7 6 5 4 3 non specific EOI; Automatic EOI(INTA) Rotating Priority Mode B (Rotation By Software) Programming the bottom priority specific EOI low high

12.9 Interrupt Interface Circuits using the 82C59A

Ex 12.10

Example