第6.2章:中断控制方法(lyz)(v1.0)_第1页
第6.2章:中断控制方法(lyz)(v1.0)_第2页
第6.2章:中断控制方法(lyz)(v1.0)_第3页
第6.2章:中断控制方法(lyz)(v1.0)_第4页
第6.2章:中断控制方法(lyz)(v1.0)_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

第6章:中断控制方式主讲老师:廉迎战副教授

本章学习目标

掌握有关中断的基本概念、中断优先级、中断嵌套、中断屏蔽、中断向量等基本概念。掌握可编程中断控制器8259A的功能、内部结构、工作方式及初始化命令和操作命令定义、使用方法,服务程序的基本编写方法。了解8086/8088中断系统中的中断源分类、IBM-PC机中断系统结构。6.2.1中断概念1、中断:使CPU挂起正在运行的程序而转去执行特殊事件的操作。2、中断源:引起中断的事件3、中断作用: (1)分时处理 (2)故障处理 (3)实时处理4、中断请求定义:用某种信号通知CPU指明某台外设正在请求需要中断现行程序的执行。条件:第一、外设本身的准备工作已完成;第二、系统允许该外设发中断请求。6.2中断处理一个中断的过程,就是妥善处理以下一些基本问题的过程:1)如何识别中断源。2)何时检查中断输入信号及其处理办法。3)如何开放和关闭中断。4)如何识别优先级较高的中断。5)如何保护和恢复中断的现场。6)如何把控制转给中断服务程序。5、中断源类型:IO外围设备(键盘、打印机)实时时钟(时钟)故障(电源断电)中断程序指令和软件故障(INTR、溢出、除0)外中断(硬中断):外设的I/O请求——可屏蔽中断INTR

电源掉电/奇偶错——非屏蔽中断NMI

内中断(软中断):INT指令/CPU错(除法错、溢出、断点、INTn)6、中断系统应具备功能:实现中断响应中断处理中断返回中断优先级排队中断嵌套中断响应的条件1)设置中断请求允许触发器,发出中断请求信号2)设置中断屏蔽触发器,当此触发器为“1”时,允许外设的中断请求才能被送出至CPU。3)CPU处于开中断状态。4)CPU在一条现行指令结束之后响应中断。6.2.2中断处理过程和中断返回中断过程包括:中断请求、中断排队、中断响应、中断服务和中断返回。1、中断请求:中断源(指令\引脚)向CPU发送的中断信号。2、中断排队:CPU内部据优先级,进行中断排队,确定响应次序。3、中断响应:CPU内部响应中断自动完成关中断保护断点(CS:IP→(SP))保护断点(IF→(SP))形成中断源的中断服务程序人口地址[(中断码*4→CS:IP)采用向量表法]4、中断服务(中断服务程序)中断入口:保护现场(PUSH XX寄存器)开中断(IF=1)中断处理(功能实现)关中断(IF=0)恢复现场(POP XX寄存器)中断返回(IRET)5、中断返回中断返回恢复断点(CS:IP←(SP))恢复断点(IF←(SP))开中断注:中断服务程序的入口地址——中断矢量6.中断响应和处理流程中断响应的过程1)发出中断响应信号。2)同时自动关中断,即置中断允许触发器IF为“0”。3)保存断点。4)保护现场。5)输入到中断服务程序逻辑的入口地址。6.中断服务程序框图保护有关寄存器开中断中断处理关中断恢复有关寄存器中断返回图中断服务程序框图返回本节7、中断屏蔽寄存器中断屏蔽触发器:8位。当此触发器在程序控制下,使触发器相应位置“1”时,允许中断(EI);若触发器相应位置“0”时,则关闭中断(DI)。8、开中断和关中断标志寄存器:中断控制位IF(InterruptEnableFlag)。当IF=“1”时,CPU开中断(可屏蔽中断)

当IF=“0”时,CPU关中断(可屏蔽中断)9、中断源管理方式中断源管理方式分两种:固定入口地址法中断向量表法

8086/8088CPU采用中断向量表法

6.2.3中断优先权管理1.中断优先级:当CPU正在处理中断时,能响应更高级别的中断请求,而屏蔽掉同级或较低级别的中断请求。

2.中断屏蔽触发器:当此触发器在程序控制下,使触发器相应位置“1”时,允许中断(EI);若触发器输出端置“0”时,则关闭中断(DI)。

3、中断优先权管理方法:软件法、硬件法软件优先权管理 利用软件优先次序确定中断源的优先次序。 方法:所有中断源请求信号“或”送CPU申请中断 查询流程确定中断的优先级 特点:简单、易实现、时间长。硬件优先权管理 利用硬件(中断优先权编码电路、链式优先权排队电路等)确定中断源优先次序 方法:中断优先权编码电路 组成:硬件编码电路和比较器组成中断源申请均送CPU的引脚编码器送出优先权的最高编码,据此获得相应的中断服务程序入口地址CPU响应中断过程中,比较器判断高级别的中断请求才被响应。链式优先权排队电路 组成:硬件逻辑电路代替查询过程各中断源通过一个特定的信号串行连接形成链,无中断请求,该信号可串行通过各中断源。当链中某一个中断源请求,该信号在相关的链上被CPU响应。链式电路优先次序决定中断源的次序。CTC、PIO、SIO、8259

特点:硬件复杂、速度快。4.中断优先排队与中断源的识别

(1)程序查询识别(软件查询法)(2)硬件串行顺序链识别(硬件查询法)(3)中断向量法识别(4)单级中断处理和多级中断处理(1)、程序查询识别中断方法(2)、硬件串行顺序链识别中断方法(3)、

中断向量编码示意图同时中断请求的处理方法(a)单级中断处理(b)多级中断处理(4).单级中断处理和多级中断处理:单级中断处理不允许其他设备再中断CPU的程序;多级中断处理允许优先级高的中断打断优先级低的中断服务程序。(3)多级中断结构(4)

单级中断结构6.2.4.18086中断能力8086微处理器有处理256种中断的能力。采用向量中断法每个中断源分配给一个中断类型码,在0~255之间,用一字节表示,也称为256种类型中断。256种类型中断分为硬件中断和软件中断。硬件中断:NMI和INTR。软件中断:异常事件或执行中断指令INTn。6.2.48086/8088中断系统软件中断(内部)硬件中断(外部)INTn指令中断逻辑断点中断溢出中断单步中断除数为0中断(3)(4)(1)(0)非屏蔽中断请求(2)中断控制器8259A可屏蔽中断请求NMIINTR8086

中断源分配图INTOINT3OF=1TF=16.2.4.28086中断分类1.硬件中断(外部中断)外部电路产生的中断称为硬件中断,又分为非屏蔽中断和可屏蔽中断两大类。可屏蔽中断经CPU的INTR引脚输入,若IF=1,CPU开放中断,可以响应中断请求。若IF=0,CPU不响应中断,即屏蔽中断。非屏蔽中断经CPU的NMI引脚输入,不受IF的限制,只要NMI有请求,CPU一定响应,故称为非屏蔽中断。2.软件中断(内部中断)处理器执行一条INTn指令的中断。n为中断类型码,可指向任何一种中断类型。当执行一条INTn指令后,程序就自动转向n类型中断的处理程序中去。分类:除法0、单步1、断点3、溢出4、软件6.2.4.38086中断优先级和中断类型码1.中断优先级响应次序为:除法错误、溢出、INTnNMI非屏蔽中断INTR可屏蔽中断(判定IF=1YES响应)单步中断2.中断类型码除法错误、溢出、单步、断点、NMI中断专用中断由硬件产生INTn软件中断包含在指令中外部可屏蔽中断INTR由硬件电路向CPU提供中断类型码(00H---0XFFH)6.2.4.4中断向量与中断向量表1、中断向量:每种中断处理程序的入口地址称为中断向量。2、中断向量表:

8086将内存最低地址的1K单元作为中断向量表,每个中断向量对应一个中断类型码,存放256种中断处理程序的入口地址,每个地址占4字节(段地址:偏移地址)。中断向量表的分配如下图所示:03FFH03FCHType225CSIP:0083HCSType32IP0080H007FHCSType31IP007CH:CSType5IP0014H0013HCSType4IPCSType3IPIPIPIPCSCSCS0010H000FH000CH000FH0008H0007H0004H0003H0000HType2Type1Type0:224保留27个用户定义个8086

专用

5

个溢出中断断点中断非屏蔽中断单步中断除数为0地址由低变高中断操作的5个步骤:(1)取中断类型号(2)计算中断向量地址(3)取中断向量,偏移地址送IP,段地址送CS(4)转入中断处理程序(5)中断返回到INT指令的下一条指令例:BIOS中断INT4AH

4AH4=128H4AH4+2=12AH(128H)IP(12AH)CS3、设置中断向量表: 步骤:编制中断服务程序、安排存储空间中断服务程序的入口地址注入中断向量表。

A、设置8086中断向量方法:例:中断服务程序的入口地址INTSUB,中断码为40H。VECTAB SEGMENT AT 0000 ORG 0100HADDRP DW 2 DUP(?)VECTAB ENDSCODE SEGMENT ------ CLIPUSH DSMOV AX,VECTABMOV DS,AXMOV ADDRP,OFFSET INTSUBMOV ADDRP+2,SEG INTSUBPOP DSSTI ------CODE ENDS4、8086/8088对中断源的采样有几条指令是在紧跟其后的一条指令也被执行完才去采样:

1)对段寄存器的装入指令

2)STI和IRET指令

3)WAIT指令

4)HLT指令6.2.4.5、8086中断程序的编写步骤:主程序:(1)设置中断向量(INTTAB=CS:IP)(2)设置8086CPU中断允许位

FLAGS中的IF位=1

允许中断(STI开中断)

=0禁止中断(CLI关中断)

(3)编写系统主程序

8086中断处理子程序:保存工作寄存器(PUSH)开中断(STI)中断处理程序关中断(CLI)恢复工作寄存器(POP)中断返回(IRET)

例:利用中断方式读取60H端口内容,并且在61H端口输出。中断类型号为0FH。解:中断类型号:0FH程序过程:主程序:1、CLI2、设置中断向量3、STI4、主程序内容5、中断服务程序:解:程序:VECTAB SEGMENT AT 0000 ORG 00F0HADDRP DW 2 DUP(?)VECTAB ENDSSTACKSEGMENTDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACKSTART:CLI;1、关中断解:PUSHDS;2、设置中断矢量MOVAX,0000HMOVDS,AXMOVAX,OFFSETIRQ7SUBMOVSI,ADDRPMOV[SI],AXMOVAX,SEGIRQ7SUBMOVSI,ADDRP+2MOV[SI],AXPOPDSSTI;3、开中断A1:JMPA1;4、主程序解:中断子程序IRQ7SUB: 5、中断服务子程序PUSHAXSTIINAL,61HOUT60H,AL

CLIPOPAXSTIIRETCODEENDSENDSTART

6.2.5.1、

IBMPC中断向量设置方法:

IBMPCDOS功能调用(21H)存取中断向量设置中断向量(将中断向量存放至中断向量表中):AH=25HAL=中断类型号DS:DX=中断向量INT21H取中断向量(从中断向量表中取中断向量送到ES:BX中AH=35HAL=中断类型号INT21H返回时送ES:BX=中断向量IBMPC6.2.5IBMPC中断处理(选讲)中断向量表的初始化方法一:采用DOS系统功能调用。即INT21H的25H号功能调用。方法二:将中断服务程序的入口地址直接装入中断向量表中。IBMPC例1 用DOS功能调用存取中断向量

MOVAL,NMOVAH,35HINT21H;取原中断向量

PUSHESPUSHBX;保存原中断向量

PUSHDSMOVAX,SEGINTHANDMOVDS,AXMOVDX,OFFSETINTHANDMOVAL,NMOVAH,25HINT21H;设置新的中断向量POPDS……POPDXPOPDSMOVAL,NMOVAH,25HINT21H;恢复原中断向量RET;INTHAND:……IRET该程序Verygood!6.2.5.2、IBMPC中断程序的编写步骤:主程序:(1)设置中断向量(DOS调用AH=25H,AH=35H)(2)设置CPU中断允许位

FLAGS中的IF位=1

允许中断(STI开中断)

=0禁止中断(CLI关中断)

(3)设置中断屏蔽位

I/O端口

21H中断屏蔽寄存器

中断屏蔽位=0允许中断

=1禁止中断76543210定时器键盘打印机中断屏蔽寄存器21H76543210中断命令寄存器20HEOIMOVAL,20HOUT20H,ALIBMPC中断处理子程序:保存工作寄存器(PUSH)开中断(STI)中断处理程序关中断(CLI)送中断结束命令(EOI,仅对硬中断)恢复工作寄存器(POP)中断返回(IRET)

例2.

编写一个中断处理程序,要求在主程序运行期间,每隔10秒响铃一次,同时显示‘Thebellisring!’dsegsegmentcount dw1mess db'Thebellisring!',0ah,0dh,'$'dsegendscsegsegmentmainprocfarassumecs:cseg,ds:dseg,es:dsegstart:pushdsmovax,axpushaxmovax,dsegmovds,ax

moval,1ch ;

movah,35hint21h

;取原中断向量

pushespushbx;保存原中断向量

pushds

movdx,offsetringmovax,segringmovds,axmoval,1chmovah,25hint21h

;设置新的中断向量

popds

inal,21handal,11111110bout21h,al

;设置中断屏蔽位,允许定时器中断

sti;开中断

movdi,2000delay:movsi,3000delay1:decsijnzdelay1decdijnzdelay

;主程序工作(期间每秒产生中断18.2次)

popdxpopdsmoval,1chmovah,25hint21h

;恢复原中断向量

retmainendp二重循环延时程序,在此期间等待中断发生ringprocfarpushdspushaxpushcxpushdx

movax,dseg ;取数据段的段地址

movds,axsti;开中断,允许更高级的中断

deccountjnzexit

movdx,offsetmessmovah,09int21h

;显示‘Thebellisring!’

mov dx,100;声音持续时间,50个高电平,50个低电平

in al,61h;喇叭的端口地址为61h,教材P129中内容

andal,11111100bsound: xoral,2 out61h,al movcx,140hwait1: loopwait1 dec dx jnesound

;响铃

movcount,182;182/18.2=10秒,每隔10秒响铃一次exit: cli;关中断

mov al,20h out 20h,al ;置EOI pop dx pop cx pop ax pop ds iretringendpcsegendsendstart

脉冲宽度的设置6.2.6.1、中断系统应具有的功能多中断源请求,软件可禁止与允许每个请求。中断优先级判别功能,响应优先级别最高的请求。中断嵌套功能,高级别中断可中断较低级别的中断。响应中断后,能自动转向中断处理程序,处理结束后自动返回主程序。每片管理8个中断源,MAX2级,64个中断源。实现多级嵌套优先级管理多种工作模式6.2.6中断控制器8259中断系统的组成微处理器应有处理中断请求的机制与相关硬件电路:接收请求,响应请求,保护现场,转向中断服务程序,处理完返回。外围应有一个与处理器匹配的中断控制器:管理多个中断源,优先级裁决,中断源屏蔽等功能。依处理器的结构编写中断处理程序,安排相关的系统初始化。6.2.6.28259A的结构和引脚1.功能及工作特点1)可用9片8259A来构成64级主从式中断系统。2)每一级中断都可以屏蔽或允许。3)8259A可提供相应的中断向量,从而能迅速地转至中断服务程序。4)通过编程使8259A工作在多种不同的方式。5)工作时只需要一组+5V电源。2、8259A可编程中断控制器结构:中断请求寄存器(IRR):8位寄存器,可寄存储8个请求输入(IR0~IR7)的状态。优先权裁决器:对请求源与正在被服务的中断级进行比较,裁决出优先级最高者。CPU设定。中断服务寄存器(ISR):8位,与IRR对应,记录正被处理的请求。IRn被响应,ISRn被置1;IRn处理结束,ISRn置0。中断屏蔽寄存器(IMR):8位,某位置1对应IRR位的请求被屏蔽。控制逻辑:寄存8259A的命令字,多种工作方式的控制,向处理器发INT,接收INTA#。级联缓冲与比较器:多片8259A级联时,对从片的标识码进行寄存与比较。MAX2级=64中断。3.结构框图图8259A的方框图4.8259A的引脚图8259A的引脚中断控制器8259A的主要引脚信号说明D7~D0:数据总线,双向,与系统数据线连接。CS#:片选信号,确定芯片在系统I/O空间位置。A0:地址线,8259A占相邻的2个I/O地址,与CS#信号配合,A0=0选偶端口,A0=1选奇端口。CAS2~CAS0:级联线,双向。在主从级联结构中,主片输出,从片输入。主片发从片标识码,从片比较,符合时输出中断类型码。SP#/EN#:双向信号。输入时为SP#,硬接线确定主从;输出时为EN#,作为DB缓冲允许。INT:中断请求,输出,与相连。INTA#:中断响应,输入,与8086INTA#相连。5.8259A的工作原理

第一个负脉冲到达时,8259A做到:1)使IRR的锁存功能失效。2)使当前中断服务寄存器ISR中的相应位置1。3)便IRR寄存器中的相应位清零。第二个负脉冲到达时,8259A完成:1)将中断类型寄存器中的内容ICW2,送到数据总线的D7~D0,CPU将此作为中断类型码。2)第二个脉冲结束时,8259A会将第一个脉冲到来时设置的当前中断服务寄存器ISR的相应位清零。6.8259A寄存器及I/O端口的识别表

8259A读写操作及地址CSRDWRA0功能8259A端口PC/XT机端口0010读IRR,ISR偶地址20H0011读IMR奇地址21H0100写ICW1,OCW2,OCW3偶地址20H0101写ICW2,ICW3,ICW4,OCW1奇地址21H011×无操作

1×××无操作

6.2.6.3中断触发方式和中断响应过程1.中断触发方式(1)边沿触发方式(2)电平触发方式(3)中断查询方式2.中断响应过程1)当一条或多条中断请求线,IR7~IR0=8259=“1”,同时,使中断请求锁存器IRRn=“1”。2)在IRR接收与IMR比较,----响应,比较PR。若高,8259AINT=1,若低,8259AINT=0,向CPU发高电平有效信号INT,请求中断服务。3)CPU当前一条指令执行完毕,且IF=1时,CPU响应中断请求,进入中断响应总线周期。(CPU送-INTA=0ISRn=1IRRNn=0),并且送中断类型码。4)8259A接到来自CPU的第一个脉冲,把允许中断的最高优先级请求位,置入服务寄存器ISR,并把IRR中对应的位清零。

5)第二个负脉冲到达时,CPU产生中断类型码,CS:IP=中断向量执行中断服务程序

6)

中断结束,CPU发IRET;8259清除ISRn=0

3.中断响应总线周期时序4.中断控制器:8259A的级连IR0IR1IR2::IR7SP#/EN#INTA#INT8259ACAS0CAS1CAS2IR0IR1IR2::IR7SP#/EN#INTA#INT8259ACAS0CAS1CAS2IR0IR1IR2::IR7SP#/EN#INTA#INT8259ACAS0CAS1CAS2最多64条中断请求线+5SLAVE1SLAVE2SLAVE0

;SLAVE7MASTER:80866.2.6.4、8259A的工作方式8259A中断触发方式:电平触发;边沿触发;程序触发6.2.6.4、8259A的工作方式8259A中断优先权设置方式普通全嵌套方式;固定优先级,IR0最高,IR7最低。(默认)特殊完全嵌套方式:与(a)基本相同,响应同级中断请求。(主片设置特殊方式)优先级自动循环方式:某级被响应后,降为最低。如IR4被响应后,优先级顺序变为:IR5,IR6,IR7,IR0,IR1,IR2,IR3,IR4。优先级特殊循环方式;编程指定最低优先级,其它同(C)。6.2.6.4、8259A的工作方式8259A屏蔽中断源方式普通屏蔽方式:对应IMR为1位的中断请求将被屏蔽。特殊屏蔽方式:执行中断程序时,动态改变优先级结构,屏蔽本级,允许较低级请求被服务。中断时清除ISR=0

特殊屏蔽方式是在中断服务程序中使用,用于中断嵌套,(低级别可以打断高级别).6.2.6.4、8259A的工作方式8259A结束中断处理方式:

ISRn被清0,中断结束。中断自动结束方式(EOI):8259A收到INTA#后自动把ISRn位清0。一般的中断结束方式:8086发命令清除ISR中级最高的位,结束中断。特殊的中断结束方式:用于优先权循环情况,将ISR中指定位清0。注意:级联方式不用自动EOI方式,中断结束用一般和特殊.一个中断结束可能发两次EOI(一次主、一次从),分别清除主从片的ISR。6.2.6.4、8259A的工作方式8259A连接总线方式缓冲方式:8259A通过总线驱动器和数据总线相连,这就是缓冲方式。非缓冲方式:当系统中只有单片8259A时,一般将它直接与数据总线相连中断查询方式CPU不是通过对中断申请的响应而是靠主动查询实现对外部接口的服务。中断级联方式主—从:主片工作特殊全嵌套方式;从片工作与全嵌套方式,允许同级中断。图8259A缓冲方式下级连结构图8259A非缓冲方式下级连结构返回本节6.2.6.5、8259A的命令字(Commandword,CW):8259A工作方式设定及运行中的控制,均由8086发来的命令字(1字节代码)决定。命令字分初始化命令字和操作命令字两种,系统向8259A两个端口之一写入。8259A根据接收命令字的端号,特征位及顺序决定命令字的属性。6.2.4.5.1、初始化命令字(InitializationCommandWord,ICW)有ICW1~ICW4四个初始化命令字,有接收顺序要求。ICW1:硬件设置

LTIM=1中断请求电平触发,LTIM=0中断请求边沿触发。

SNGL=1单片8259A系统,SNGL=0多片8259A系统。ICW2:中断类型码设定,最低3位由IRn的n值定。ICW3:在多片8259A系统中依主片、从片而定。主片:有1位其IR连有从片用8位。从片:INT连到主片IR哪端,用最后3位。ICW4:工作方式设定

SFNM=1特殊全嵌套、SFNM=0非特殊全嵌套。

AEOI=1中断自动结束、AEOI=0一般中断结束。

BUF=0,DB无缓冲,SP#/EN#用作SP#。

BUF=1,DB有缓冲,主从片软件定。

M/S=1为主片、M/B=0为从片。PM=1,8086系统、PM=0,8085系统。6.2.6.5.2、操作命令字:(OperationCommandWord,OCW)共有OCW1~OCW3三个操作命令字。8259A在运行期间可接收8086发来的OCW,对工作方式进行控制,OCW无接收顺序要求,有端口号要求。OCW1:屏蔽命令字,有1位对应请求被封。OCW2:优先级循环及EOI方式设定。OCW3:特殊屏蔽方式,中断查询方式及读寄存器。1M7M6M5M4M3M2M1M01=屏蔽IRn请求0=不屏蔽IRnA0D7D6D5D4D3D2D1D01、中断屏蔽(操作命令字(OCW1))2、中断结束操作命令字(OCW2)0RSLE0I00L2L1L0A0D7D6D5D4D3D2D1D0001011101111000100110010普通EOI方式特殊的EOI方式普通EOI循环方式特殊EOI循环方式自动EOI循环(复位)自动EOI循环(置位)置位优先权命令无效000—IR0001—IR1010—IR2011—IR3100—IR4101—IR5110—IR6111—IR7当SL=1时,由L2~L0指出中断结束命令中需要清除ISR中的哪一位等等R—优先权循环控制位R=1循环,R=0固定EOI—自动返回3、控制8259运行方式操作命令字(OCW3)00ESMMSMM01PRRRISA0D7D6D5D4D3D2D1D00X:无效10:特殊屏蔽方式复位11:特殊屏蔽方式置位0X:无效10:下次RD#有效,读IRR11:下次RD#有效,读ISM1:查询8259状态0:不查询标志位4、8259查询字IRn端口0I--------W2W1W0A0D7D6D5D4D3D2D1D01:中断0:不6.2.6.6、8259A级联使用的初始化编程举例

1、8259编程步骤:CLI初始化程序预置中断向量表中断服务程序8259初始化STI例:中断结束命令和普通全嵌套方式使用单片8259、上升沿、码40H、普通嵌套、非缓冲、8086、非EOI方式。ICW1=13H;ICW2=40H、ICW4=01H IR4中断请求

IR3、IR6中断请求响应过程。 (P189) 2、8259A级联使用的初始化编程举例

某系统中设置两片8259实现中断控制,它们之间采用级联方式连接,一片从8259的INT端与主8259的IR3相连,在当前主8259的IR0和IR5端上分别引入两个中断请求,从8259的IR2和IR3端也分别引入两个中断请求,如下图所示。

已知主8259引入的中断类型码分别为40H和45H,它们的中断服务程序在同一段中,其段基址为1000H,偏移地址分别为1050H和2060H,而由从8259引入的中断请求IR2和IR3的中断类型码分别为32H和33H,它们的中断服务程序的段基址为2000H,偏移地址分别为5440H和3620H,那么首先应将四个中断入口写入中断入口地址表中,如图所示。

若已知主8259的端口地址为FFE8H和FFE9H,从8259的端口地址为FFEAH和FFEBH,应分别对主8259和从8259进行初始化编程。主8259ICWICW1A0=000010001B=11HICW2A0=101000000B=40HICW3A0=100001000B=80HICW4A0=100010001B=11H特殊全嵌套方式、非缓冲、非自动EOIOCW1A0=111010110B=D6HOCW2A0=000100000B=20H对主8259的初始化程序段发如下所示:MOV AL,11HMOV DX,0FFE8H ;定义ICW1:级联方式,边缘触发OUT DX,AL ;并且设置ICW4MOV AL,40HMOV DX,0FFE9HOUT DX,AL ;定义ICW2:中断类型码为40H~47HMOV AL,08HOUT DX,AL ;定义ICW3:主8259的IR3接有从8259的INTMOV AL,11HOUT DX,AL ;定义ICW4:特殊完全嵌套,非自动EOIMOV AL,0D6HOUT DX,AL ;定义OCW1:屏蔽掉IR0、IR3、IR5以外的中断源MOV AL,20HMOV DX,0FFE8HOUT DX,AL ;定义OCW2:普通EOI结束方式从8259ICWICW1A0=000010001B=11HICW2A0=100110000B=30HICW3A0=100000011B=03HICW4A0=100010001B=11HOCW1A0=111110011B=F3HOCW2A0=000100000B=20H对从8259的初始化程序段发如下所示:MOV AL,11HMOV DX,0FFFAHOUT DX,AL ;定义ICW1:级联方式,边缘触发MOV AL,30HMOV DX,0FFFBHOUT DX,AL ;定义ICW2:中断类型码30H~37HMOV AL,03HOUT DX,AL ;定义ICW3:从82

温馨提示

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

评论

0/150

提交评论