500 likes | 685 Views
中断系统. 第六章 中断系统. 中断的作用. 第 6.1 节 计算机中断系统 中断的作用 并行操作,提高工作效率 CPU 与外设同时工作,多个外设同时工作。 实现实时处理 在控制系统中,有些参量要求计算机能快速处理,用中断方式容易实现。 故障处理 出现故障,提出中断申请,要求计算机及时响应。. 中断源. 中断源 任何能引发中断的事件都称为 中断源 ,可分为: 硬件中断源: I/O 设备,系统时钟,故障源等 软件中断源: 程序中断指令 (INT 3) ,指令运行出错 (INTO) 等 中断系统的功能 (一)实现中断及返回 检测中断
E N D
中断系统 第六章 中断系统
中断的作用 第6.1节 计算机中断系统 • 中断的作用 • 并行操作,提高工作效率 • CPU与外设同时工作,多个外设同时工作。 • 实现实时处理 • 在控制系统中,有些参量要求计算机能快速处理,用中断方式容易实现。 • 故障处理 • 出现故障,提出中断申请,要求计算机及时响应。
中断源 • 中断源 任何能引发中断的事件都称为中断源,可分为: • 硬件中断源:I/O设备,系统时钟,故障源等 • 软件中断源:程序中断指令(INT 3),指令运行出错(INTO)等 • 中断系统的功能 (一)实现中断及返回 • 检测中断 当中断允许时,CPU在每条指令的最后一个时钟周期检测中断请求。 • 响应中断时保护断点和现场 断点自动保护,现场要在中断服务程序中保护
正常程序 中断服务程序 CS : IP 中断 处理 断点 CS : IP+1 继续执行 返回断点 中断系统的功能 CPU响应中断时,会停止当前执行程序,转去执行中断处理程序,原程序被打断的地方称为“断点”。 断点地址是指中断处理程序结束后,返回原程序恢复执行的第一条指令的地址,又称“返回地址”。 现场是指进入中断服务程序之前CPU各个寄存器的状态。 • 中断服务完成时将中断申请信号撤销 • 中断服务完成后恢复现场和断点,返回原程序
三 态 中断类型 缓冲器 码(0FH) 三 态 D7~D0 D7~D0 +5V 缓冲器 D D0 A 外 设 D C Q B INTR Q C EOC R IOW 160H 地址 A15 ~ 162H 译码 A 中断允许触发器 A0 器 B 中断申请触发器 IOR INTA 中断系统的功能 (二)对中断进行控制 • 对中断申请进行控制 例1 一个输入设备的中断接口电路
中断系统的功能 • 电路说明 • 外设准备好数据后,发EOC信号(负脉冲),把数据放到接口线上,同时置“1”中断申请触发器。 • 执行如下指令,置中断允许触发器为“1”,开放中断 MOV AL, 01H MOV DX, 160H OUT DX, AL • 若禁止中断,则执行如下指令 MOV AL, 00H MOV DX, 160H OUT DX, AL
中断系统的功能 • 当INTR为高电平,且CPU中断开放(IF=1),则CPU响应中断。在中断响应周期,INTA有效,读取中断类型码,清除中断申请触发器。 • 在中断服务程序中读取外设数据 MOV DX, 162H IN AL, DX • 对中断响应进行控制 标志寄存器Flag中IF标志可控制CPU是否查询INTR引脚 • STI IF=1 允许中断 • CLI IF=0 禁止中断
中断系统的功能 (三)实现优先权排队 当系统中多个中断源同时发出中断请求时,CPU按照重要性和急迫性(中断优先级)择优响应: • 不同优先级同时请求时,CPU先响应高优先级中断; • CPU在处理低优先级中断时,若出现高优先级中断请求,则转去处理高优先级中断(中断嵌套); • CPU在处理高优先级中断时,若出现低优先级中断请求,暂不响应; • CPU在处理中断时,若出现同级别中断请求,则等当前中断处理完后,才处理新的请求。
中断系统的功能 (四)寻找中断源 有中断申请时需要查找中断源,以决定中断服务程序入口地址。 • 预先约定 当有中断申请时,则转到固定地址执行中断服务程序。电路简单,但一般只能为几个中断源服务。 • 查询 在中断服务程序中查询中断源。 • 应答方式(矢量中断) 响应中断时CPU发中断响应信号,中断源收到此信号发出中断类型码,CPU根据中断类型码决定中断服务程序入口地址。
D7 ~ 三态 D0 缓冲器 地址 A15 ~ 译码 源A A0 中断 B 20H 器 C 申请 IOR D 触发 E INTR 器 F G H 中断系统的功能 • 中断源查找和中断优先级排队的实现 • 软件查询中断源 CPU响应中断后用软件查询申请中断的外设 • 查询方法优点 • 查询次序即是优先权次序; • 省硬件,不需要硬件排队电路。 • 缺点:转至服务程序入口时间长
DST 0 CF LSB MSB 中断系统的功能 • 查询程序 IN AL, 20H LEA BX, BRNTAB CIRCLE: SHR AL, 1 JC GETAB ADD BX, 2 OR AL, AL JNZ CIRCLE JMP ERROR GETAB: JMP CS : [BX] BRNTAB DW SUB1, SUB2, SUB3, SUB4 DW SUB5, SUB6, SUB7, SUB8
外设2 外设3 外设1 +5V 接口1 接口2 IEI IEO 接口3 IEI IEO IEI IEO SEL1 SEL2 D7 SEL3 ~ D0 INTA INTR IOR IOW 中断系统的功能 • 链式优先权排队电路(应答方式) • 电路说明 • 每个接口有一个中断允许输入IEI和中断允许输出IEO,只有IEI为高电平时才允许该接口芯片发中断请求; • IEO=IEI•INT INT表示该设备有中断请求; • 每个接口芯片的中断请求输出为OC门,具有负逻辑的“线或”关系; • 响应中断时由INTA从接口读取中断矢量。
比较器 中断 服务 B2 优先权 寄存 B1 编码器 B0 器 A>B INTR IR0 A2 IR1 优先权 A1 中断 IR2 编码器 A0 请求 IR3 寄存 IR4 器 IR5 IR6 IR7 中断系统的功能 • 中断优先权编码电路 • 电路说明 • 中断请求寄存器由IR0 ~IR7可分别引入8个外设的中断请求。 • 优先权编码器把当前最高优先级的中断输入进行编码后输出。 • 中断服务寄存器记录正在服务的中断申请。 • 中断申请的最高级与正在服务的最高级比较,只有申请级高于服务级才能提出中断申请(INT)。
INT 2 INT n 指令 非屏蔽 中断 NMI 中 断 逻 辑 INTR 可屏蔽 中断 INTO 断点 单步 除数 指令 指令 中断 为0 INT 4 INT 1 INT 0 INT 3 8086 中断结构 第6.2节 8086/8088的中断结构 • 8086中断 8086 CPU中断分为两类 • 硬件中断:由外部请求引起的中断 • 软件中断:由指令执行引起的中断
8086 中断结构 (一)硬件中断 • 可屏蔽中断 可屏蔽中断申请输入为INTR引脚,高电平有效,该中断受IF控制,CPU在每条指令的最后一个T状态检测该引脚。CPU响应中断后,使INTA有效,从外设读取中断类型码。 8086/8088有256个中断类型,用1个字节进行编码称为中断类型码,每个中断类型码对应4个字节的中断服务程序入口地址。
8086 中断结构 • 非屏蔽中断 非屏蔽中断申请输入为NMI引脚,上升沿有效,该中断不受CPU控制,中断类型码为2(INT 2)。 非屏蔽中断一般用于非常事件。PC/XT机中用于系统板上RAM奇偶错,I/O通道奇偶错和8087异常中断。
8086 中断结构 (二)软件中断 • DIV和IDIV指令(INT 0) 若除数为0或商超过寄存器所能表达的范围,则产 生类型为0的软件中断。 • INT 指令 (INT n) 执行INT n指令引起的中断。 • INTO 指令(INT 4) 若OF=1,则指令INTO引起类型码为4的软件中断。 • 单步中断 (INT 1) 若TF=1,则CPU每执行完一条指令后便产生类型码为1的软件中断。
中断优先级顺序 • PC机的中断优先顺序 • 软件中断(单步中断除外) • 不可屏蔽中断NMI • 可屏蔽中断INTR • 单步中断
中断向量表 • PC机的中断向量 8086 CPU在内存00000H~003FFH的1KB地址空间内建立一个中断向量表,存放256个中断服务程序的入口地址,每个地址占4个字节。前两个字节为中断服务程序偏移地址IP,后两个字节为服务程序段地址CS。 一个中断服务程序的入口地址称为 中断向量,中断向量表就是中断服务程 序入口地址表。 003FCH 类型255指针 溢出 00010H 断点 0000CH 非屏蔽 00008H 单步 00004H 段地址 CS 除数为0 00000H 偏移量 IP
段地址高8位 87H CS 86H 段地址低8位 85H 偏移量高8位 IP 84H 偏移量低8位 中断向量表 由于每个中断类型码对应4个字节的程序入口地址,因此中断类型码乘以4便可得到中断向量表中存放中断服务程序入口地址的存储单元的偏移量。 256个中断向量中 • 0 ~ 4: 专用中断类型 • 5 ~ 1FH: 保留中断类型 (可修改中断服务程序) • 20H~0FFH:用户可用中断类型 其中8~0FH是8个硬件中断 例:INT 21H指令调用第21号中断服务 程序,其入口地址存放在中断向量表中 84H~87H的连续4个字节。 (21H×4=84H)
外设中断源1 IR0 IR1 IR2 IR3 8086 8259A IR4 IR5 IR6 INTR 外设中断源8 INT IR7 INTR引脚信号说明 • INTR引脚信号说明 计算机中,多个外设中断源通过8259A中断优先级管理器连接到INTR引脚,外设中断源的优先级由8259A进行管理 IR0 ~ IR7优先级由高到低,通常对应的中断类型码为8~0FH。(IR0~IR7的编号恰好对应中断类型码的低3位) 例:IR0对应中断类型码08H
IR0 IR8 IR1 IR9 INTR IR2 IR10 主片 8259A CPU IR3 IR11 从片 8259A IR4 IR12 IR5 IR13 IR6 IR14 INTR INTR IR7 IR15 INTR引脚信号说明 • IBM PC/XT机中一般使用两片8259A级连 8259级联后可管理15个外设,只能两级级联 优先级:0 1(8……15)3…7 高 低
中断响应过程 • 中断响应过程 • 中断检测 CPU在每条指令执行的最后一个时钟周期检测中断请求,如果出现以下之一,则进入中断响应周期。 • 有软件中断 • 有NMI中断信号 • 有INTR中断信号,而且CPU允许中断响应,即IF=1 • 获取中断类型码 进入中断响应周期以后, • 若是INTR,则产生INTA信号,中断源通过数据总线的低8位将中断类型码传送给CPU; • 若是NMI,则类型码是2; • 若程序出错产生中断,则使用默认的类型码; • 若是中断指令,则指令中有类型码。
中断响应过程 • 保护断点 系统自动将标志寄存器压入堆栈,清除TF和IF,并将断点处的CS和IP压入堆栈,先压CS后压IP。 • 得到中断向量 系统根据中断类型码形成中断服务程序的入口地址,转入中断服务程序执行,每个中断都有自己的处理程序。 • 中断服务处理 进入中断服务程序后,通常由以下步骤组成 • 保护现场,开中断 • 中断处理 • 关中断,恢复现场,又开中断 • 用中断返回指令(IRET)返回 • 中断返回:从堆栈中恢复断点处CS:IP和FLAG
8259功能简介 第6.3节 中断控制器 INTEL8259A • INTEL8259A结构与功能 (一)功能简介 8259A是与8086系列CPU兼容的可编程中断控制器。 • 具有8级优先权控制,通过级联可扩展至64级 • 每一级中断都可以屏蔽和允许。 • 中断响应时提供中断类型码。 • 中断申请可以有电平触发,也可有边沿触发。 • 有多种工作方式。
INT INTA D7 数据总线 控制电路 ~ 缓冲器 D0 控制逻辑 初始化命令 操作命令 RD 读/写 寄存器组 寄存器组 控 制 WR A0 逻 辑 CS SP/EN 级 连 IR0 中断 中断 CAS0 中断服务 IR1 缓 冲 IR2 优先 CAS1 请求 比 较 寄存器 IR3 CAS2 级分 寄存 IR4 (ISR) 析器 器 IR5 IR6 (IRR) IR7 中断屏蔽寄存器 (IMR) 8259内部结构 (二)8259内部结构
8259内部结构说明 • 内部结构说明 • 8259A有8个外部请求输入端IR0~IR7,由中断请求寄存器IRR保存申请状态; • 中断服务寄存器ISR保存CPU正在处理的中断请求; • 中断屏蔽寄存器IMR对中断申请进行控制; • 中断优先级分析器决定中断申请的优先级; • 控制逻辑中包含两个寄存器组 • 初始化命令寄存器组:ICW1~ICW4 • 操作命令寄存器组: OCW1~OCW3 • 级联逻辑控制8259A的主从工作方式。
Vcc CS 1 28 A0 WR 2 27 INTA RD 3 26 IR7 D7 4 25 IR6 D6 5 24 Intel IR5 D5 6 23 IR4 D4 7 22 8259A IR3 D3 8 21 IR2 D2 9 20 IR1 D1 10 19 IR0 D0 11 18 INT CAS0 12 17 CAS1 13 16 SP/EN GND 14 15 CAS2 8259引脚图 • 引脚说明 • D7~D0 双向,三态数据线,可直接与系统总线相连。 • IR7~IR0 8个外部中断请求输入引脚,可为高电平有效或上升沿有效。 • RD 读信号,输入,低电平有效,若有效则把8259A内部寄存器数据读入到CPU。 • WR 写信号,输入,低电平有效,若有效则把数据写入到8259A的内部寄存器。 (三)8259A引脚图
8259引脚图说明 • CS 片选信号,低电平有效,给8259A分配地址。 • A0 用于选择8259A内部不同寄存器。 • INT 中断申请线,输出,高电平有效, 8259A的中断申请输出引脚(可连接8086的INTR)。 • INTA 输入,低电平有效,有效时8259A输出中断类型码 • CAS2~CAS0 级联信号线,当8259A为主片时为输出引脚,从片时为输入引脚。收到第一个INTA时,主片通过这三根线通知有中断申请的从片在第二个INTA时送出中断类型码。 • SP/EN 在非缓冲工作方式时,输入,决定8259A为主片还是从片;在缓冲工作方式时,输出,由它打开总线缓冲器。
+5V D7 D7 IR0 IRQ0 日时钟 SP/EN ~ ~ IR1 IRQ1 键盘 D0 D0 IR2 IRQ2 保留 IR3 COM2 IRQ3 IOR RD IR4 COM1 IRQ4 8259A IOW WR IR5 硬盘 IRQ5 INTR INT IR6 软盘 IRQ6 IR7 INTA INTA 打印机 IRQ7 CAS2 A0 A1 CAS1 CS +5V CAS0 A15 +5V 74LS138 A14 74LS30 G1 Y0 A13 G2A A12 Y1 A8 G2B A11 C A7 A10 A9 B A6 74LS04 A A5 8259与计算机的连接 • 8259A与计算机的连接 (一)8259A单片工作方式的接口电路
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0 范 围 0020H ~003FH 0 0 0 0 0 0 0 0 0 0 1 X X X X X 8259与计算机的连接 • 电路说明 • 8259A 的数据线与控制线对应连接到系统总线; • 由74LS30(8输入与非门)和74LS138(三-八译码器)对地址线进行译码决定端口地址,地址为020H~03FH; • 8086使用低8位数据线与8259A传递信息。8086的A1接到8259的A0线上,使用偶地址; • CAS2 CAS1 CAS0未接,SP/EN接正电源; • 地址范围
+5V IR0 D7 IRQ0 SP/EN D7 IR1 ~ ~ IRQ1 D0 IR2 D0 IRQ2 INTR INT IR3 IRQ3 INTA INTA IR4 IRQ4 RD IOR 8259A IR5 IRQ5 WR IOW IR6 IRQ6 A0 A1 IR7 IRQ7 CS INTA1CS (020H CAS2 CAS1 CAS0 ~ 03FH) CAS2 CAS1 CAS0 INT D7 IRQ8 实时钟 ~ IR0 IRQ9 D0 8259A 改向INT0A IR1 IRQ10 IR2 INTA IRQ11 IR3 RD IRQ12 协处理器 IR4 WR A0 IRQ13 IR5 IRQ14 IR6 CS INTA2CS IRQ15 IR7 SP/EN (0A0H~0BFH) (二)两片8259A级联工作管理15级中断
8259与计算机的连接 • 说明 • 从片8259A的中断申请端INT接主片的IR2 • 主片的SP/EN接+5V,从片的SP/EN接地,主从片的CAS2、CAS1、CAS0对应连接。 • 主片的端口地址INTA1CS为020H~03FH, 从片的端口地址INTA2CS为0A0~ 0BFH. • 8086系统主从芯片都用偶地址传递信息。
A0 D7 D6 D5 D4 D3 D2 D1 D0 A7 A6 A5 1 ADI IC4 0 LTIM SNGL 8259初始化命令字 • 8259A编程字 (一)初始化命令字 • ICW1 (Initial Command Word) • A0=0,D4=1表示对ICW1编程 • D0(IC4) D0=1需要ICW4;D0=0 不需要ICW4 • D1(SNGL) • D1=1为单片8259工作方式; • D1=0 为级联工作方式,此时要用ICW3指明级联端
8259初始化命令字 • D2(ADI) 指明8080/8085系统中地址间距,8086系统不用 • D3(LTIM) • D3=1 中断请求是电平触发方式; • D3=0 上升沿触发方式。 • D5~D7(A5~A7) 8080/8085系统中断服务程序页面地址,8086系统不用 • 注:初始化命令字一般在初始化8259时才写入,而且写入有严格的顺序,先写ICW1,最后写ICW4
D4 A0 D7 D6 D5 D3 D2 D1 D0 A12/T4 A10 A9 A15/T7 A14/T6 A13/T5 A11/T3 A8 1 8259初始化命令字 • ICW2 • A0=1,跟在ICW1后表示对ICW2编程 • A15~A8 为8080/8085系统中页面地址高8位; • T7~T3 为8086系统中的中断类型码的高5位,低3位根据申请端自动填充。 例 若ICW2 = 0000 1000B ,则8259A的IR3引脚上的中断请求的中断类型码为 0000 1011 即0x0B
D7 D6 D5 D4 D3 D2 D1 D0 A0 主片 1 S7 S6 S5 S4 S3 S2 S1 S0 A0 D7 D6 D5 D4 D3 D2 D1 D0 从片 1 0 0 0 0 0 ID2 ID1 ID0 8259初始化命令字 • ICW3 • A0=1,且ICW1的D1=0(SNGL),跟在ICW2表示对ICW3编程 • 主片 Si=1表示该中断申请来自从片 • 从片 ID2~ID0对应从片的标识位,响应中断时第一个INTA,主片从CAS2 ~CAS0送出识别号,若从片的CAS2~CAS0与识别号相同,在第二个INTA送出中断类型码。ID2 ~ID0与从片连接到主片的输入端相对应。
A0 D6 D5 D2 D4 D3 D7 D1 D0 upm 1 0 SFNM BUF M/S AEOI 0 0 8259初始化命令字 • ICW4 • A0=1,且ICW1的D0=1,跟在其他初始化字后表示对ICW4编程 • D0(pm) D0=1为16位处理器体系;D0=0 为80/85处理器体系 • D1(AEOI) • D1=1自动结束中断方式,在第二个INTA清ISR中的对应位; • D1=0 非自动结束中断方式,中断结束时发EOI命令清ISR中的对应位
8259初始化命令字 • D2(M/S) • 在缓冲方式下(BUF=1),选择主片和从片,M/S=1为主片, M/S=0为从片。 • 在非缓冲方式下,由SP/EN引脚设定主片和从片。 • D3(BUF) • D3=1为缓冲工作方式, SP/EN为缓冲选通信号。单片系统都置1; • D3=0为非缓冲工作方式。 • D4(SFNM) • D4=1 为特殊全嵌套方式,此时允许同级中断再次进入,一般用于多片级联方式; • D4=0 为普通全嵌套方式,禁止同级中断再次进入。
A0 D6 D5 D4 D3 D2 D7 D1 D0 M5 M3 1 M0 M7 M6 M4 M2 M1 8259操作命令字 (二)操作命令字 操作命令字可在任何时候写入8259A ,且无顺序。 • OCW1(Operation Command Word) • A0=1 表示设置OCW1 • Mi=1 表示屏蔽IRi输入中断请求 例屏蔽键盘 IN AL, 22H OR AL, 02H / AND AL, 0FDH OUT 22H, AL
A0 D6 D5 D4 D3 D2 D7 D1 D0 0 R SL EOI L2 L1 L0 0 0 8259操作命令字 • OCW2 • A0=0,且D4D3=00,表示对OCW2编程 • R 优先权循环状态 R=1优先权自动循环;R=0优先权不循环 • SL 设定标志。SL=1由L2、L1、L0指明中断号或最低优先权 • EOI 中断结束命令标志,非自动结束方式时清ISn 一般EOI指令为 MOV AL, 20H OUT 20H, AL
A0 D6 D5 D4 D3 D2 D7 D1 D0 P RR 0 1 RIS 0 0 ESMM SMM 8259操作命令字 • OCW3 • A0=0,且D4D3=01,表示对OCW3编程 • ESMM SMM 1 1 设置特殊屏蔽,无优先级,未屏蔽中断申请均可进入 1 0 取消特殊屏蔽 • P=1 ,设置8259A为查询工作方式,此时8259A不发INT信号,CPU通过查询指令决定服务程序。 查询得到格式如下表所示
A0 D6 D5 D4 D3 D2 D7 D1 D0 0 W2 W1 W0 I X X X X 8259操作命令字 • I=1 表示有中断请求 • W2 W1 W0为当前最高优先级的中断请求中断号 • P=0,由RR和RIS设置下一个读取的寄存器 RR RIS 1 0 在下一个A0 = 0端口读IRR 1 1 在下一个A0 = 0端口读ISR 若下一个A0 = 1,则读取IMR寄存器 例:读取ISR到AL中 mov al, 0BH out 20H, al IN al, 20H ;读取IMR到AL中 mov al, 0AH out 20H, al IN al, 22H
ICW1 ICW2 N 级联方式? Y ICW3 N 要ICW4? Y ICW4 8259命令字举例 • 8259A初始化编程举例 (一)8259A初始化编程顺序
A0 D6 D5 D4 D3 D2 D0 D7 D1 A6 1 A7 A5 ICW1 0 IC4 LTIM ADI SNGL A0 D6 D5 D4 D3 D2 D0 D7 D1 T5 T3 1 T7 X X X T6 T4 ICW2 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 upm ICW4 BUF M/S SFNM AEOI 8259命令字举例 (二)IBM PC/XT机单片8259A初始化 要求: • 端口地址为20H和22H • 接收8个中断请求信号为边沿触发 • 选择全嵌套方式,IR0为最高优先级,IR7为最低优先级 • 设定IR0中断类型码为08H 注:8259A的地址线A0是连接到系统地址总线的A1上
8259命令字举例 初始化程序段 INTA0_0 EQU 20H INTA0_1 EQU 22H MOVAL,13H OUT INTA0_0, AL ;ICW1 MOVAL,08H OUT INTA0_1,AL ;ICW2 MOV AL,09H OUT INTA0_1,AL ;ICW4
8259命令字举例 (三)在AT/286以上机器上,使用两片8259A级联组成15个中断申请输入端 要求: • 端口地址主片为20H和22H,从片为A0H和A2H。 • 接收上升沿触发中断请求信号。 • 选择全嵌套方式,优先级排列次序为0级最高,依次为1级,8~15级,然后是3~7级。 • 采用非缓冲方式,主片SP/EN接+5V,从片SP/EN接地 • 设定主片中断类型码为08H~0FH,从片为70H~77H
11H ICW1 X X X IC4 LTIM 1 ADI SNGL 主 08H X X X T7 T6 ICW2 T3 T5 T4 从 70H S7 S4 ICW3 主 04H S5 S3 S2 S1 S6 S0 0 0 0 0 0 0 1 02H 0 从 pm 01H u AEOI M/S 0 0 ICW4 0 SFNM BUF 8259命令字举例 • 初始化命令字
8259命令字举例 初始化程序段 INTA00 EQU 20H INTA01 EQU 22H INTB00 EQU 0A0H INTB01 EQU 0A2H MOV AL,11H OUT INTA00,AL ;主片ICW1 JMP SHORT $+2 ;I/O口要求延时 MOV AL,08H OUT INTA01,AL ;ICW2 JMP SHORT $+2 MOV AL,04H OUT INTA01,AL ;ICW3 JMP SHORT $+2 • MOV AL,01H • OUT INTA01,AL ;ICW4 • JMP SHORT $+2 • MOV AL,11H • OUT INTB00,AL ;从ICW1 • JMP SHORT $+2 • MOV AL,70H • OUT INTB01,AL ;ICW2 • JMP SHORT $+2 • MOV AL,02H • OUT INTB01,AL ;ICW3 • JMP SHORT $+2 • MOV AL,01H • OUT INTB01,AL ;ICW4