8259的外部优先级中断实验指导书新规定

合集下载

实验四 8259A的单级中断控制实验

实验四 8259A的单级中断控制实验

实验四使用8259A的单级中断控制实验一、实验目的1.掌握中断控制器8259A与微机接口的原理和方法。

2.掌握中断控制器8259A的应用编程。

二、实验内容编制程序,利用开关作为8259芯片IR7的中断源,人工控制产生单一中断。

中断的功能是驱动发光二极管,使其亮灭,不停地闪动。

三、实验提示8259中断控制器是专为控制优先级中断设计的芯片。

它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。

因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。

同时,在不需要增加其它电路的情况下,通过多片8259的级联,能构成多达64级的矢量中断系统。

实验箱中采用一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表所示。

表1 8259中断矢量对应关系务程序程序,使系统每次响应外部中断IR7时发光二极管闪烁。

四、实验电路五、实验软件清单Port0 EQU 0FFE0HPort1 EQU 0FFE1HCODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 3400HP8259: CLIMOV AX,OFFSET INT8259MOV BX,003CHMOV [BX],AXMOV BX,003EHMOV AX,0000HMOV [BX],AXCALL FOR8259MOV AL,0FEHMOV DX,0FFE4HSTIJMP $;============================== FOR8259:MOV AL,13HMOV DX,Port0OUT DX,ALMOV AL,08HMOV DX,Port1OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,7FH ;IRQ7OUT DX,ALRET;--------------------------- INT8259:cliPush dxPush axMOV AL,20HMOV DX,Port0OUT DX,ALPop axPop dxOut dx,almov cx,0loop $Rol al,1STIIRETCODE ENDSEND P8259六、实验软件框图七、实验步骤(1)按实验电路图连接线路:①开关Ki 和8259 7号中断IR7插孔相连。

8259中断实验详解

8259中断实验详解

浙江工业大学计算机学院实验报告实验名称 8259A中断实验姓名李晓峰学号 ************班级物联网1301教师雷艳静日期 12.18一、实验内容与要求1.1 实验内容利用8259A芯片,实现中断响应程序。

要求根据单脉冲按键,输出相应的语句:THIS IS THE xxx INTERRUPT! 。

到达中断次数后,屏幕上显示PROGRAM TERMINATED NORMALLY! 1.2 实验要求(1)第一次按键,输出THIS IS THE 1 st INTERRUPT!;(2)第二次按键,输出THIS IS THE 2 nd INTERRUPT!;(3)第十一次按键(特殊),输出THIS IS THE 11 st INTERRUPT!;(4)以此法继续,直至计数值为零,输出PROGRAM TERMINATED NORMALLY!二、实验原理与硬件连线2.1 实验原理PC用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。

中断控制器用于接收外部的中断请求信号,经过优先级别判别等处理后向CPU发出可屏蔽中断请求。

IBM PC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源。

中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 0BH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。

PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级联,对外可以提供16个中断源。

中断源中断类型号中断功能IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 073H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留TPC-USB实验板上,将中断源固定到3号中断IRQ3上,即进行中断实验时,所用中断型号为0BH。

实验3 8259 中断控制实验

实验3 8259 中断控制实验

实验报告课程名称实验名称实验日期学生专业学生学号学生姓名实验室名称教师姓名成绩南京理工大学机械工程学院微机原理及应用实验38259中断控制实验2017年5月26日车辆工程9141010F0309蒋龙鑫徐群实验48259中断控制实验1实验目的(1)掌握8259中断控制器的工作原理;(2)学习8259的应用编程方法;(3)掌握8259级联方式的使用方法。

2实验设备PC机一台,TD-PITC实验装置一套。

3实验内容及步骤在对8259进行编程时,首先必须进行初始化。

一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。

8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。

在初始化主片8259时,写入初始化命令字的顺序是:ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。

实验内容:实验接线图如图4-1所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。

图4-18259单中断实验接线图参考实验程序清单:SSTACK SEGMENT STACKDW32DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART:PUSH DSMOV AX,0000HMOV DS,AXMOV AX,OFFSET MIR7;取中断入口地址MOV SI,003CH;中断矢量地址MOV[SI],AX;填IRQ7的偏移矢量MOV AX,CS;段地址MOV SI,003EHMOV[SI],AX;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL,11HOUT20H,AL;ICW1MOV AL,08HOUT21H,AL;ICW2MOV AL,04HOUT21H,AL;ICW3MOV AL,01HOUT21H,AL;ICW4MOV AL,6FH;OCW1OUT21H,ALSTIAA1:NOPJMP AA1MIR7:STICALL DELAYMOV AX,0137HINT10H;显示字符7MOV AX,0120HINT10HMOV AL,20HOUT20H,AL;中断结束命令IRETDELAY:PUSH CXMOV CX,0F00HAA0:PUSH AXPOP AXLOOP AA0POP CXRETCODE ENDSEND START实验步骤:(1)按图4-1连接实验线路;(2)编写实验程序,经编译、链接无误后装入系统;(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”以说明响应了中断。

8259中断实验

8259中断实验

共享知识分享快乐XX学院实验报告实验名称姓名学号班级教师日期一、实验内容与要求1.1 实验内容本次实验分为如下3个子实验:(1)单中断请求实验:利用系统总线上中断请求信号MIR7,设计一个单一中断请求实验;(2)双中断优先级实验:利用系统总线上中断请求信号MIR6和MIR7,设计一个双中断优先级应用实验,观察8253对中断优先级的控制;(3)级联中断实验:利用系统总线上中断请求信号MIR7和SIR1,设计一个级联中断应用实验。

1.2 实验要求本次实验中三个子实验的实验要求如下:(1)单中断请求实验:单脉冲KK1+与主片8259的IR7相连。

每按KK1+,进入一次中断,输出7;(2)双中断优先级实验:单脉冲KK1+连主片8259的IR7,KK2+连其IR6。

每当KK1+按下时显示“7”,每当KK2+按下显示“6”;(3)级联中断实验:单脉冲KK1+连主片8259的IR7,KK2+连从片的IR1。

每当KK1+按下时显示“M7”,每当KK2+按下显示“S1”。

二、实验原理与硬件连线2.1 实验原理(1)中断控制器8259简介在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。

该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。

从片的INT连接到主片的IR2信号上构成两片8259的级联。

在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。

8259的内部连接及外部管脚引出如图1-1:INTR串口0MIR6MIR7SIR1图1-1 8259内部连续及外部管脚引出图表1-1列出了中断控制单元的寄存器相关信息。

表1-1 ICU寄存器列表初始化命令字1寄存器(ICW1)说明见图1-2所示。

7ICW1图1-2 初始化命令字1寄存器初始化命令字2寄存器(ICW2)说明见图1-3所示。

8259中断控制实验

8259中断控制实验
主片:IRQ0——T/C0
IRQ1——键盘中断
IRQ2——8259从片
IRQ3——串口2
IRQ4——串口1
IRQ5——并行口2
IRQ6——软盘控制器
IRQ7——并行口1
从片:IRQ8——实时时钟中断
IRQ9——RE—DTNECT
IRQA——保留
IRQB——保留
IRQC——保留
IRQD——协处理器
IRQE——硬盘控制器
在dos中输入命令lab8运行程序
显示“program run!Exit after interrupt 40 times”
按键
产生第一次中断,在屏幕上输出“This is SXL_100 interrupt”
按键五次,在屏幕上进行了5次输出
再一次按键,在屏幕上进行了第七次输出
再一次按键,在屏幕上进行了第八次输出
in al,dx ;读入9052中断状态
mov irq_mark,al ;保存9052中断状态
or al,5bh
out dx,al;开放9052中断
;中断向量的保存和设置
mov ah,35h;取72h号(中断类型号)中断向量保存在ES:BX
mov al,int_vect
int 21h
mov ax,es
五、源程序、程序框图、程序函数及过程介绍
程序框图
源程序
data segment
int_vect equ 71h
ioport_0 equ 0dc80h
int_time db 00h ;计数器
csreg dw ?
ipreg dw ?
irq_mark db ? ;9052屏蔽状态
int_mark db ? ;8259屏蔽寄存器状态

实验七 8259中断

实验七 8259中断

实验七8259中断
一.实验目的
1.掌握8086及PC机中断处理系统的基本原理;
2.掌握8259中断控制器的基本原理与应用;
3.掌握中断服务子程序的编写方法。

二.硬件连线
单脉冲发生器的正脉冲信号接PC总线的IRQ7。

三.实验原理
PC机中用8259进行外部中断源的控制,本实验使用IRQ7。

四.实验编程及实验内容
1.每产生一次中断请求,则在屏幕上显示“THIS IS A IRQ7!”,10次后结束,主机键
盘按任意键也结束。

2.将实验十二改为中断方式,即单脉冲开关产生中断请求信号时,才将K0~K7状态读入
并显示。

实验十五键盘中断
一.实验目的
1.掌握PC中键盘的硬件、软件原理;
2.掌握PC机中断矢量的读取和设置的方法。

二.硬件连线
本实验不需使用实验箱。

三.实验原理
PC机键盘用5芯电缆与主机连接,用IRQ1中断方式输入扫描码,按下时为通码,D7=0,松开时为断码,D7=1,每个按键对应一个唯一的扫描码。

输入扫描码的端口为60H,控制口为61H,D7控制键盘复位,D6控制键盘时钟。

四.实验编程及实验内容
1.编程将PC机上按键对应的扫描码显示在屏幕上,ESC(01H)则结束。

若PC机上按键为字母键则大、小号各显示一次,若不是字母键则不显示,ESC结束。

【8259中断操纵器实验实验报告】 8253操纵8259中断

【8259中断操纵器实验实验报告】 8253操纵8259中断

中断号 主 8259 IRQ0 主 8259 IRQ1 主 8259 IRQ2 主 8259 IRQ3 主 首先运行 CHEC 催序,查看 INTR 中断号及相 关信息。(3)参考试验流程图
8259 IRQ4 主 8259 IRQ5 主 8259 IRQ6 主 8259 IRQ7 从 8259 IRQ8 从 编写程序,然后编译链接。
试验前先运行 CHEC 僵序,得到 INTR 所对应的中断号、相 应的初始
为 1 级、8 级?15 级,然后
化指令字寄存器 ICW 及操作指令字寄存器 OCW 勺地
是 3 级?7 级
ห้องสมุดไป่ตู้
址、开屏蔽的指令字、中断矢虽地址和 PCI 卡中断操纵寄存
在扩展系统总线上的 INTR 对应的中断线就是 PC 机保存 中断其中的
8259 IRQ9 从 8259 IRQ10 从 8259 IRQ11 从 8259 IRQ12 从 8259 IRQ13
(4)将单次脉冲单元的 KK1 琏接到系统总线上的 INTR。
从 8259 IRQ14 从 8259 IRQ15 功能 日时钟/计数器 0 键盘 接从片 8259 串
(5)运行程序,按动 KK1 成键,观看中断是否产生。
第1页共1页
本文格式为 Word 版,下载可任意编辑,页眉双击删除即可。
应哪一级中断,3〕响应中断时,向 CPU 传送中断类型号。
图 6-2 ICW4 格式
8259 的内部结构和引脚如图 6-1 所示。
图 6-3 OCW 指令字格式
8259 的指令共有 7 个,一类是初始化指令字,另一类 是操作指令。
本文格式为 Word 版,下载可任意编辑,页眉双击删除即可。
8259 中断操纵器实验实验报告】 8253 操纵 8259 中 断

微机实验_8259中断控制实验

微机实验_8259中断控制实验
附件(四)
深 圳 大 学 实 验 报 告
课程名称:微机原理
实验项目名称:8259中断控制实验
学院:计算机与软件
专业:网络工程
*******
报告人:学号:班级:
实验时间:2013年12月9日
实验报告提交时间:2013年12月25日
教务处制
实验目的、设备、内容及要求:
1.了解中断的概念和中断控制器8259的工作原理。
OUT 21H, AL;ICW2
MOV AL, 04H
OUT 21H, AL;ICW3
MOV AL, 01H
OUT 21H, AL;ICW4
;初始化从片8259
MOV AL, 11H
OUT 0A0H, AL;ICW1
MOV AL, 30H
OUT 0A1H, AL;ICW2
MOV AL, 02H
OUT 0A1H, AL;ICW3
CCH~CFH
D0H~D3H
D4H~D7H
D8H~DBH
DCH~DFH
说明
未开放
可用
未开放
未开放
未开放
未开放
未开放
未开放
实验过程及步骤:
一、单个8259外部中断实验
(1)按右图所示完成实验电路连线。单次脉冲输出KK1+与主片8259的IR7相连。
(2)打开PC机,运行Wmd86软件,进入Wmd86集成开发环境。输入实验程序:
MOV AL, 01H
OUT 0A1H, AL;ICW4
MOV AL, 0FDH
OUT 0A1H,AL;OCW1 = 1111 1101
MOV AL, 6BH
OUT 21H, AL;主8259 OCW1

8259中断控制实验

8259中断控制实验

深圳大学实验报告课程名称:实验项目名称:学院:专业:指导教师:报告人: 学号: 班级:实验时间:实验报告提交时间:教务部制一般中断实验,为了保护现场,程序开头都会引用堆栈把把现在的程序放入堆栈中进行保护,所以.PUS.DS就起到这样的作用.在中断程序结束后,为了能回到之前执行的程序入口,还得用PO.D.指令返回现场.这个实验是关于8259的单中断,不牵涉级联问题,所以,8259的初始化只需要看主片就可了.初始化的时候,一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入始化字.8259有四个初始化控制字ICW1,ICW2,ICW3,ICW4,由于8259只有一根地址线,因此对各个制字的操作是按照一定的顺序并结合某些数据位来进行寻址设置的.当初始化完成后,对8259的操作命令字的寻址是通过8259的地址线A0和某些数据位结合来进行的.其初始化控制字和控制命令辽的赋值由我已经在注释中给出.另外,在初始化程序中我们用了STI这条指令打开中断,那么进入MIR7中断程中,我们为什么又执行STI这条指令呢,会不会重复了?经过实验,我们知道这条指令并不是没用的,如果少后面这条STI指令,实验中我们会发现,当按一次KK1开关的时候,屏幕会显示一个字符7,但是,再按KK1的时候,就没有反应了,起初并不知道怎么解释这个现象,后来才知道8086CPU执行完一次中断后,会自动将相应的中断位屏蔽,所以,如果我们想按一次KK1就发生一次中断,就得重新在程序中打开中断,也就是STI.另外,RET指令是短信返回指令,而IRET指令则是中断短程返回指令,一般中断程序也大多是短程的.那么,中断发生的时候,CPU又是怎样进入中断子程序的呢?这就需要我们正确地设置中向量表的了.实验板上主中断序号7可用,也就是我们得利用3CH-3FH这矢量地址.所以在程序开始的候,就采用MO.AX.OFFSE.MIR7,MO.SI.003CH,MO.[SI].AX这三句来获得偏移地址IP,接着高址位置又用MO.AX.CS,MO.SI.003EH,MO.[SI].AX这三条指令来获得CS.CPU根据CS,IP 就能转入正确的中断程序执行中断了.而中断程序结尾处,用了MO.AL.20. OU.20H.AL以及IRET这三条指令.是为了说明这是正常的EOI, 可以通知8259A此次服务结束.深圳大学学生实验报告用纸注: 1.报告内的项目或内容设置, 可根据实际情况加以调整和补充。

实验三 8259A硬件中断实验

实验三 8259A硬件中断实验

实验三 8259A硬件中断实验一、实验目的1.掌握8088中断系统原理。

2.掌握8259A扩展8088系统中断的方法及编程。

二、实验内容根据系统提供的电路,掌握8259的工作原理,编程实现外部脉冲使8259产生中断。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图(1) 8259A芯片介绍8259A是专用控制中断优先级而设计的集成电路,可对中断源的优先级排队、识别、及提供中断矢量。

单块8259A可编程实现8级中断管理,并可选择优先模式及中断请求方式。

另外由多片8259A级联,可构成多达64级的矢量中断系统。

本实验用2号中断源IR2,接单次脉冲,中断方式为边沿触发方式。

程序每按一次按键产生一次中断,中断服务程序使输出状态反转一次。

本实验需要用到CPU模块(F3区)、8259模块(C5区)、八位逻辑电平输出模块(E4)、八位逻辑电平显示模块(B5)。

8259电路原理图参见图11-1。

五、实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。

六、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接单次脉冲低信号到8259模块的INT_2;用导线连接8259模块的CS_8259到CPU模块的200H;用导线对应连接8259模块的INT、INTA到CPU模块的88INTR、88/INTA;扩展输出模块的JD1C接8位LED显示的JD4B;用导线连接扩展输出模块的CS_273到CPU模块的208H。

2)启动PC机,打开THGMW-88软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)手动按单次脉冲,按一次产生一次中断,LED显示状态反转一次。

实验程序:把程序补充完整,记录调试通过的程序。

CS8259 EQU 200HCS273 EQU 208HCODE SEGMENTASSUME CS:CODE,DS:CODESTART: XOR AX,AXMOV DS,AXLEA AX,IRQ2MOV DS:28H,AXMOV AX,CSMOV DS:2AH,AXMOV DX,CS8259MOV ; ICW1OUT DX,ALINC DXMOV AL,08H ; ICW2:中断号从8开始OUT DX,ALMOV ; ICW4:全嵌套方式,86/88系统,自动结束中断OUT DX,ALMOV ; OCW1:开放Int-2OUT DX,ALMOV DX,CS8259MOV ; OCW2:非特殊EOI结束中断OUT DX,ALSTI ; 开中断MOV BL,055HHERE:MOV AL,BLOUT DX,ALCALL DELAYJMP HEREIRQ2: CLIMOV AL,BLNOT ALMOV BL,ALSTIIRETDelay proc near。

8259中断实验实验报告

8259中断实验实验报告

实验报告实验名称8259A中断控制器实验姓名学号班级教师日期一、实验内容与要求1.1 实验内容了解8259A终端控制器的工作原理,了解PC中断的原理和过程,设计并编写程序,设置8259A的命令字,定义中断服务程序,使在TPC-USB平台上每按一次单脉冲开关产生一次中断,在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2 TPCA Interrupt!”、……、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。

1.2 实验要求(1)具有一定的汇编编程的基础,能编写一些基本语句来实现实验。

实验前根据实验流程图,写出对应代码;(2)要了解8259A中断控制器的内部结构和外部引脚,理解芯片的工作原理和工作过程。

熟悉8259A芯片的命令字,对其进行编程;(3)熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4)连接PC与TPC-USB平台,用微机实验软件运行程序,每按一次TPC-USB平台上的单脉冲开关产生一次中断,要在屏幕上依次显示“The 1 TPCA Interrupt!”、“The 2TPCA Interrupt!”、……、“The 10 TPCA Interrupt!”,中断10次后程序退出,并在屏幕上显示“The TPCA Interrupt end!”。

二、实验原理与硬件连线2.1 实验原理8259A是一种可编程中断控制器,可协助CPU进行中断管理。

8259A 的内部结构如图1所示。

单片8259A工作时,每次中断处理过程如下:(1)当IR7 ~ IR0 上有中断请求,则IRR 相应的位置1;(2)对于已进入IRR且未被IMR屏蔽的中断请求,PR电路进行优先级判定,得到最高级的中断请求;(3)控制逻辑接收中断请求,向CPU发INT 信号;(4)若CPU允许中断,则在当前指令结束后连续发出2个中断应答信号INTA,进行中断响应。

8259的外部优先级中断实验指导书新规定

8259的外部优先级中断实验指导书新规定

中断实验8259A是一种可编程接口芯片,它将中断源的优先级排队、识别中断源及提供中断向量的功能集于一体,因此,只需对8259A进行编程,就可以管理8级中断,并选择优先模式、中断请求方式、中断结束方式等。

在中断源超过8个时,不需加任何附加电路通过多片级联构成多达64级向量中断,所以8259A的中断控制功能既强又灵活。

2.4.4 实验预习:(1) 了解中断的概念。

(2) 了解8259A的工作原理。

(3) 分析、了解中断子程序入口地址的设置过程。

2.4.5实验要求:(1).要认真预习实验内容。

(2).要求在运行主程序时对每次中断进行记录。

2.4.6实验步骤及说明:(1)连线。

(2)编辑录入源程序并汇编。

(3)启动系统,运行程序。

(4)触发脉冲(中断申请)。

(5)观察验证结果。

(6)说明:一个8259A可外接8个中断源,本实验只响应INT0,INT1,INT2中断,8259A 也可以多级连接以响应多个中断源。

本实验的8259A的INT0,INT1,INT2管脚分别是中断申请源,哪个优先级高,就首先执行相应的中断服务程序,假设CUP 首先响应的是INT0申请源,那么就要执行IENT0中断服务程序,就说明它的级别最高。

现将INT0,INT1,INT2管脚连到一起,接到单脉冲信号发生器插孔,在运行主程序时,同时申请中断(给一个正脉冲),观察存储器的内容在执行IENT0、IENT1、IENT2中断服务程序前后数据的变化(从0400H观察)。

联机①用串口线连接实验机和系统计算机。

打开实验机的电源,显示8086。

②点击系统机桌面上的图标(CT2000系统软件实验平台),在对话框中选择“好”。

在仿真器菜单中点击“仿真器设置”。

在对话框中选择不使用软件模拟器。

在选择仿真器项中选择“CT2000实验系统”,仿真头选择“8088/8086实验”,CPU选择“8088”。

端口选择为COM1。

确认硬件仿真器设置。

实验机显示“888888”。

实验三 8259 中断控制器实验

实验三 8259 中断控制器实验

实验三8259 中断控制器实验一、实验目的1.掌握8259 中断控制器与微机的接口方法。

2.掌握8259 中断控制器的编程。

二、实验内容1.硬件线路原理图如图。

2.编程提示(1) 8259 芯片介绍8259 是专用控制中断优先级而设计的集成电路,可对中断源的优先级排队、识别、及提供中断矢量。

单块8259 可编程实现8 级中断管理,并可选择优先模式及中断请求方式。

另外由多片8259 级联,可构成多达64 级的矢量中断系统。

(2) 程序方框图主程序IR3 中断服务程序IR7 中断服务程序(3)初始化编程:由CPU向8259A送初始化命令字ICW。

在8259A开始正常工作前,必须写初始化命令字使其处于开始状态。

操作命令编程:由CPU向8259A送操作命令字OCW,可以在8259A初始化后,根据需要在程序的任何地方写入。

(4 Array 4. 硬件连线及实验结果(1) 8259 的CS6插孔连线EX1插孔。

(2) 8259 的INT 插孔连线INTR 插孔。

(3) 8259 的INTA 插孔连线INTA 插孔。

(4) 8259 的IR 3插孔连线插孔。

(5) D 0~7数据线用扁平电缆连接数据总线。

本实验用 3 号中断源IR3,与插孔线连,中断方式为边沿触发方式。

程序每按一次AN 键产生一次中断,满5次中断,显示“8259 Good”。

如果中断触发信号不符号要求,则自动转到7 号中断,显示“Err”,以示出错。

例 IBM PC/XT 系统初始化中,设ICW1=13H ,表示系统中8259A 为单片方式,上升沿触发,要求设置ICW4。

指令为: MOV AL ,13H OUT 20H ,AL中断类型号基值,即IR0的类型号。

其中低3位初始时为0,高5位由用户设定。

工作过程中,低3位值由IR0~IR7中响应哪级中断(对应000~111)来确定。

在IBM PC/XT 系统中,T7~T3=00001,所以对应8个中断的类型号为08H~0FH 。

实验六 8259中断控制器实验

实验六 8259中断控制器实验

实验六 8259中断控制器实验实验项目名称:8259中断控制器实验实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:2一、实验目的1、熟悉并且理解中断技术,体验中断技术对于实时的可编程系统的意义。

2、掌握中断技术所涉及的线路连接、初始化、优先级、屏蔽、中断响应、转入中断服务程序、中断结束、反复接收中断的过程与参数设置,尤其是硬件处理与软件处理的交汇点——中断向量表。

3、掌握中断控制各参数的初始化和更新方法。

二、实验内容和要求1、用单脉冲发生器(P0)作中断源,每按一次产生一次中断申请,改变一个发光二极管的亮灭状态。

如果没有中断源,则不产生中断,发光二极管的亮灭状态保持不变。

2、实验原理图三、实验主要仪器设备和材料1、EL实验箱2、计算机3、中断控制板四、实验方法、步骤及结果测试1、将中断控制板插入EL实验箱左上角的40针插座上;2、将单脉冲发生器的输出P0与8259A中断控制板的中断源IR0相连;3、将8259中断控制板的片选信号CS59与CS7相连;4、从CS0~CS7片选信号中选一个信号CS1(04b0h)与输出接口芯片74LS273的片选信号CSU8相连,74LS273的输出信号SO0接一个发光二极管L1;5、编程并调试,在中断服务程序设置断点,按下PUL键、产生单脉冲后,能够观察到发光二极管亮灭控制器的状态翻转,以及相应的发光二极管的亮灭;6、实验源程序(实验程序名T4.ASM)Assume cs:codeCode segment publicOrg 100hStart:Mov dx,3f0h ;8259初始化Mov al,13h ;ICW1设置Out dx,alMov dx,3f2hMov al,80hOut dx,al ;ICW2设置中断类型为80HMov al,03hOut dl,al ;ICW4设置Mov ax,00hOut dx,al ;OCW1设置,允许所有8个中断Mov ax,00h ;设置中断向量表OUT DX,AXMOV AX,00hMov ds,axMov si,200hMov ax,offset hintMov ds:[si],axAdd si,2Mov ds:[si],0100h ;设置中断服务程序入口地址XOR AL,AL ;初始化发光二极管亮灭控制器STI ;IF<-1,开中断Waiting:NOPJMP waiting ;在主程序无限循环Hint: ;中断服务子程序XOR AL,1 ;每响应中断、进入中断服务程序,发光二极管状态翻转一次MOV DX,04B0HOUT DX,ALIRETCode endsEnd start说明:8086的中断系统是向量中断方式,不同类型的中断向量存于不同的位置,其计算方法是:中断类型N*4中断类型的高5位由8259读出,低3位有IR的编码确定,IR0=000IR1=001...IR7=111五、实验报告要求1、试说明本实验中8259A中断控制器各寄存器ICW1、ICW2、ICW4、OCW1的初始化设置含义。

微机原理与接口技术实验报告4-8259外部中断实验

微机原理与接口技术实验报告4-8259外部中断实验

西安交通大学实验报告第页共页课程微机原理与接口技术实验系别生物医学工程实验日期年月日专业班级组别交报告日期年月日姓名学号报告退发(订正、重做)同组者教师审批签字实验名称8259外部中断实验一、实验目的1、掌握8259芯片结构及工作方式;2、熟悉8259的初始化和操作编程。

二、实验设备1、Lab6000p实验教学系统;2、IBM-PC机三、系统中的8259模块Lab6000p实验箱中的8259模块连线如图所示:图1 8259模块连线AD0~AD7、A0、/WR、/RD已分别连至系统总线DB0~DB7、AB0、/IOW、/IOR;引出CS、IR0(即INT0)、INTA留给用户连接。

三、实验内容和实验步骤1、8259基本实验1)实验要求用8259和8255实现脉冲个数计数,脉冲个数以二进制形式在LED上显示。

2)电路连接图2 电路连接图3)程序框图图3 程序框图4)实验步骤1、在Lab6000p实验箱上完成连接电路;2、开启计算机电源,开启Lab6000p实验箱电源;3、启动WAVE6000软件;4、确认WAVE6000与Lab6000p连接;5、输入源代码;6、编译源代码(F9);7、单步运行源代码(F8),观察每条指令执行结果;8、在中断服务程序入口处设置断点,连续运行程序,按一下单脉冲,在断点处单步运行,观察中断服务程序运行过程。

5)实验代码mode equ 82h ; 8255 工作方式PA8255 equ 8000h ; 8255 PA 口输出地址CTL8255 equ 8003hICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW4ICW2 equ 00100000b ; 中断号为20HICW4 equ 00000001b ; 工作在8086/88 方式OCW1 equ 11111110b ; 只响应INT0 中断CS8259A equ 0d000h ; 8259 地址CS8259B equ 0d001hdata segmentCNT db 0data endscode segmentassume cs:code, ds: dataIEnter proc nearpush axpush dxmov dx, PA8255mov al, CNTout dx, al ; 输出计数值mov dx, CS8259Amov al, 20h ; 中断服务程序结束指令out dx, alpop dxpop axiretIEnter endpIInit procmov dx, CS8259Amov al, ICW1out dx, almov dx, CS8259Bmov al, ICW2out dx, almov al, ICW4out dx, almov al, OCW1retIInit endpstart proc nearmov dx, CTL8255mov al, modeout dx, alclimov ax, 0mov ds, axmov bx, 4*ICW2 ; 中断号mov ax, codeshl ax, 4 ; x 16add ax, offset IEnter ; 中断入口地址(段地址为0)mov [bx], axmov ax, 0inc bxinc bxmov [bx], ax ; 代码段地址为0call IInitmov ax, datamov ds, axmov CNT, 0 ; 计数值初始为0mov al, CNTmov dx, PA8255out dx, alstiLP: ; 等待中断,并计数。

实验三 8259中断控制

实验三 8259中断控制

8259中断控制一.实验目的(1)掌握8259中断控制器的工作原理;(2)掌握系统总线上PCI_INTR中断请求的应用编程方法。

二.实验设备PC机一台,TD-PITD实验装置一套。

三.实验要求利用系统总线上中断请求信号PCI_INTR设计一个单中断应用。

使用单次脉冲模拟中断产生。

编写中断处理程序,在显示器频幕上显示一个字符“9”。

四.实验内容1.中断控制器简介中断控制器8259A是专为控制优先级中断而设计的芯片。

它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。

因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。

即中断结构可以由用户编程来设定。

同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

它的管理功能包括:(1)纪录各级中断源请求;(2)判断优先级,确定是否响应和响应哪一级中断;(3)响应中断时,向CPU传送中断类型号。

2.8259的内部结构和引脚图五.实验步骤实验参考程序:实验方法:(1)按下图接线(2)运行Tdpit集成操作软件,根据实验要求编写程序并编译、链接。

(3)使用运行程序命令运行行程序,重复按单次脉冲开关KK+,显示屏会显示字符“9”,说明响应了中断。

六.实验结论1.当IR0连接的开关从断开到闭合时,有上升沿产生,则调用中断服务程序INT_0。

2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;3.中断类型由8359通过数据总线送给8086,8086乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;4.中断类型的高5位由8359寄存器ICW2决定,低3位由中断源IRx的编码自动填充,IRO~IR7的编码分别是000,001,010,011,100,101,110,111。

8259中断控制器实验

8259中断控制器实验

一、实验目的⑴掌握8259中断控制器的接口方法。

⑵掌握8259中断控制器的应用编程。

二、实验内容编制程序,利用8259芯片的IR作为中断源,产生单一中断,系统显示中断号“7”。

三、程序流程四、实验电路五、编程提示⑴8259芯片介绍中断控制器8259A是专业性为控制优先级中断设计的芯片。

它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。

因此无需附加任何电路,只需对8259A 进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。

同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

⑵本实验中使用7号中断源IR7,“SP”插孔和IR7相连,中断方式为边沿触发方式,每按二次AN按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1个字符“7”,满“7”次后显示“P.”继续等待中断。

六、实验连线Dais系列实验箱连线七、实验步骤编写源程序,编译、装载,连续运行程序,按动AN按钮,LED数码管从最高位开始依次显示“7”,显示满后,最高位显示“P.”,继续等待中断。

八、实验参考程序CODE SEGMENTASSUME CS:CODE, DS:CODE, ES:CODEORG 3400HStart: JMP P8259ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3HBUF DB ?,?,?,?,?,?Port0 EQU 0FFE0HPort1 EQU 0FFE1HP8259: CLICALL WP ;初始化显示“P.”MOV AX,OFFSET INT8259 ;设置中断向量MOV BX,003CHMOV [BX],AXMOV BX,003EHMOV AX,0000HMOV [BX],AXCALL FOR8259MOV SI,0000HSTICON8: CALL DISJMP CON8;------------------------------------INT8259: CLIMOV BX,OFFSET BUFMOV BYTE PTR [BX+SI],07HINC SICMP SI,0007HJZ X59XX59: MOV AL,20H ;发中断结束命令MOV DX,Port0OUT DX,ALmov cx,0050hxxx59: push cxcall dispop cxloop xxx59pop cxmov cx,3438hpush cxSTIIRETX59: MOV SI,0000HCALL WPJMP XX59;==============================FOR8259:MOV AL,13H ;初始化8259MOV DX,Port0OUT DX,ALMOV AL,08HMOV DX,Port1OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,7FH ;IRQ7OUT DX,ALRET;---------------------------WP: MOV BUF,11H ;初始化显示“P.”MOV BUF+1,10HMOV BUF+2,10HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HRET;--------------------------------DIS: MOV CL,20HMOV BX,OFFSET BUFDIS1: MOV AL,[BX]PUSH BXMOV BX,OFFSET LEDXLATPOP BXMOV DX,ZXK ;显示相应数字OUT DX,ALMOV AL,CLMOV DX,ZWK ;选择显示的数码管OUT DX,ALPUSH CXMOV CX,0100HDELAY: LOOP $POP CXCMP CL,01HJZ EXITINC BXSHR CL,1JMP DIS1EXIT: MOV AL,00HMOV DX,ZWKOUT DX,ALRET;--------------------------CODE ENDSEND Start一、实验目的⑴掌握可编程I/O接口芯片8255的接口原理,熟悉对8255初始化编程和输入、输出软件的设计方法。

实验六 8259外部中断实验

实验六 8259外部中断实验

实验六 8259外部中断实验实验四 8259外部中断实验姓名:学号:班级:1、实验要求:用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。

要求程序中对每次中断进行计数,并将计数结果显示在LED数码管上。

2、实验目的:(1)学习8088/86与8259的连接方法。

(2)学习8088/86对8259的控制方法。

3. 实验器材:(1)G2021+实验平台 1 台(2)G6W仿真器 1 台(3)连线若干根(4)8259芯片1 片(5)万用表 1 块(6)Lab8088板 1 块4、实验电路:5、实验说明:编程时注意:(1)正确地设置可编程中断控制和工作方式。

(2)必须正确地设置中断服务程序地址。

8259可外接8个中断源,本实验只响应INT0中断,8259也可以多级连接以响应多个中断源。

实验时,将单脉冲信号接到8259的INT0脚。

每次中断时,可看到LED显示会加1。

6、实验框图:输出计数值设置中断服务程序地开计数值加1中断入口设置中断控制器工作方式中断允许输出中断结束命令等待中断中断返回主程序框图 EXTINT中断子程序框图 7、程序清单:(IN8088A/B04.ASM) OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164时钟位) DAT164 equ 0e102h ; 段控制口(接164数据位)ICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW4 ICW2 equ 00100000b ; 中断号为20HICW4 equ 00000001b ; 工作在8086/88 方式 OCW1 equ11111110b ; 只响应INT0 中断 CS8259A equ 0A000h ; 8259地址CS8259B equ 0A001hdata segmentLEDBuf db 6 dup(?) ; 显示缓冲 Num db 1 dup(?) ; 显示的数据 DelayTdb 1 dup(?)LEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h,7ch, 39h, 5eh, 79h, 71h CNT db 0 data endscode segmentassume cs:code, ds: dataDelay proc nearpush ax ; 延时子程序 push cxmov al, 0 mov cx,ax loop $pop cx pop ax ret Delay endpDisplayLED proc nearmov bx, offset LEDBufmov cl, 6 ; 共6个八段管 mov ah, 00100000b ; 从左边开始显示 DLoop:mov dx, OUTBIT mov al, 0out dx,al ; 关所有八段管 mov al, [bx]mov ch, 8 ; 送164 DLP:push ax mov ah, 0 test al, 80h jz GN1mov ah, 1 GN1:mov dx, DAT164 ; 输出数据位 mov al, ah and al,0fdh out dx, almov dx, CLK164 ; 送出时钟脉冲 ;mov al, 1 or al,02h out dx, al;mov al, 0 and al,0fdh out dx, alpop ax shl al, 1 dec ch jnz DLPmov dx, OUTBIT mov al, ahout dx, al ; 显示一位八段管push ax mov ah, 1 call Delaypop axshr ah, 1 inc bx dec cl jnz DLoopmov dx, OUTBIT mov al, 0out dx,al ; 关所有八段管 retDisplayLED endpIEnter proc near push ax push dxinc CNTmov dx, CS8259Amov al, 20h ; 中断服务程序结束指令 out dx, alpop dx pop ax iret IEnter endpIInit procmov dx, CS8259A mov al, ICW1 out dx, almov dx, CS8259B mov al, ICW2 out dx, almov al, ICW4 out dx, almov al, OCW1out dx, al ret IInit endpStart proc near climov ax, data 实验截图:实验总结:通过这个实验,我基本了解了如何用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。

实验九 中断控制器8259实验

实验九 中断控制器8259实验
300H 8255B口 8255B口 301H 8255C口 8255C口 302H 8255控制寄存器 8255控制寄存器 303H
初始化
附录3 发送到LED的值 附录3 发送到LED的值

思考题
① 将A口改为B口,应如何修改程序 口改为B
和连线?
② 修改程序,使之向发光二极管输出的同 修改程序, 时,在显示器上同步输出.
附录1 几个DOS 附录1 几个DOS中断 DOS中断
功能01H,07H和 功能01H,07H和08H 功能描述:从标准输入设备(如:键盘) 功能描述:从标准输入设备(如:键盘)读入一个字 符.该中断在处理过程中将一直处于等待状态直 到有字符可读为止.该输入还可被重定向,如果 这样做,则无法判断文件是否已到文件尾 入口参数:AH=01H,过滤掉控制字符,并回显 入口参数:AH=01H,过滤掉控制字符,并回显 =07H,不过滤掉控制字符,不回显 =07H,不过滤掉控制字符,不回显 =08H,过滤掉控制字符,不回显 =08H,过滤掉控制字符,不回显 出口参数:AL=输入字符的ASCII码 出口参数:AL=输入字符的ASCII码
;LED灯熄灭
MOV AX,3572H INT 21H MOV INT0A_OFF,BX MOV BX,ES MOV INT0A_SEG,BX CLI MOV AX,2572H MOV DX,SEG LEDLIGHT PUSH DS MOV DS,DX MOV DX,OFFSET LEDLIGHT INT 21H POP DS STI IN AL,0A1H AND AL,0FBH OUT 0A1H,AL IN AL,21H AND AL,0FBH OUT 21H,AL
8259主片和从片简图 8259主片和从片简图
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中断实验8259A是一种可编程接口芯片,它将中断源的优先级排队、识别中断源及提供中断向量的功能集于一体,因此,只需对8259A进行编程,就可以管理8级中断,并选择优先模式、中断请求方式、中断结束方式等。

在中断源超过8个时,不需加任何附加电路通过多片级联构成多达64级向量中断,所以8259A的中断控制功能既强又灵活。

2.4.4 实验预习:(1) 了解中断的概念。

(2) 了解8259A的工作原理。

(3) 分析、了解中断子程序入口地址的设置过程。

2.4.5实验要求:(1).要认真预习实验内容。

(2).要求在运行主程序时对每次中断进行记录。

2.4.6实验步骤及说明:(1)连线。

(2)编辑录入源程序并汇编。

(3)启动系统,运行程序。

(4)触发脉冲(中断申请)。

(5)观察验证结果。

(6)说明:一个8259A可外接8个中断源,本实验只响应INT0,INT1,INT2中断,8259A 也可以多级连接以响应多个中断源。

本实验的8259A的INT0,INT1,INT2管脚分别是中断申请源,哪个优先级高,就首先执行相应的中断服务程序,假设CUP 首先响应的是INT0申请源,那么就要执行IENT0中断服务程序,就说明它的级别最高。

现将INT0,INT1,INT2管脚连到一起,接到单脉冲信号发生器插孔,在运行主程序时,同时申请中断(给一个正脉冲),观察存储器的内容在执行IENT0、IENT1、IENT2中断服务程序前后数据的变化(从0400H观察)。

联机①用串口线连接实验机和系统计算机。

打开实验机的电源,显示8086。

②点击系统机桌面上的图标(CT2000系统软件实验平台),在对话框中选择“好”。

在仿真器菜单中点击“仿真器设置”。

在对话框中选择不使用软件模拟器。

在选择仿真器项中选择“CT2000实验系统”,仿真头选择“8088/8086实验”,CPU选择“8088”。

端口选择为COM1。

确认硬件仿真器设置。

实验机显示“888888”。

通过逻辑分析仪记录波形③点击项目菜单选择“编译”→检查编译是否正确。

④置逻辑分析仪:仿真器→跟踪器/逻辑分析仪设置→逻辑分析仪;逻辑分析仪窗口“”→触发设置→采样频率10M。

⑤点击“”复位→“”全速运行程序→发“”单脉冲后,可通过逻辑分析仪窗口观察到中断相应的波形,通过分析波形可以了解中断的响应过程,以及中断响应的条件,记录波形。

2.4.7 8259A的内部寄存器:(1) 中断请求寄存器IRR每片8259A能够管理8个外部中断源,其中断请求输入端为IR7-IR0,在没设定指定优先级或优先级循环方式时IR0的优先级最高,IR7的优先级最低。

请求信号可以是电平触发也可以是边沿触发。

中断请求寄存器IRR是一个具有锁存功能的8位寄存器,用它来存放外部中断请求信号IR7-IR0。

当某个中断源有请求时,IRR寄存器中的相应位置“1”,当中断请求被响应,IRR寄存器中的相应位被清零。

(2) 中断屏蔽寄存器IMR中断屏蔽寄存器IMR是一个8位锁存器,与8级中断源IR7-IR0相对应。

其中的每一位可以对IRR中相对应的中断源进行屏蔽。

某位为“1”时,相应中断源被屏蔽,某位为“0”时,表示开放。

(3) 优先权分析器PR当中断源IRi有中断请求产生时,PR检查新产生的中断请求的优先级并和“正在服务的中断”进行比较,判定是否向CPU提出中断申请。

同时有多个中断请求时,PR进行中断请求优先级的比较并提出申请,及中断被响应时送出最高优先级中断源的中断类型号。

(4) 中断服务寄存器ISR中断服务寄存器ISR是一个8位锁存器,与8级中断源IR7-IR0相对应。

用来存放正在服务的所有中断级,包括尚末服务完而中途被别的中断所打断了的中断级,在第一个INTA信号有效时ISR的相应位置“1”,中断服务结束时用命令将其清零。

2.4.8 编程注意事项:(1) 正确设置可编程中断控制和工作方式。

(2) 必须正确设置中断服务程序人口地址。

2.4.9 8259A的编程:(1) 设置初始化命令字ICW1:单片8259A, 边沿触发。

设置ICW1,对8259A编程指令序列为:mov dx, CS8259Amov al, 00010011Bout dx, al(2) 设置初始化命令字ICW2:中断号为20H。

T3为中断向量地址。

设置ICW2,对8259A编程指令序列为:mov dx, CS8259Bmov al, 00100000Bout dx, al(3) 设置初始化命令字ICW4:工作在8086/88 方式。

设置ICW4,对8259A编程指令为:mov dx, CS8259Bmov al, 00000001Bout dx, al(4) 设置操作命令字OCW1:只响应INT0, INT1, INT2 中断。

1——中断请求被屏蔽设置OCW1,对8259A编程指令序列为:mov dx, CS8259Bmov al, 11111000Bout dx, al(5) 设置操作命令字OCW2:8259A采用普通EOI结束方式。

偶地址 0 0 1 0 0 0 0 0设置OCW2,对8259A编程指令序列为:mov dx, CS8259Amov al, 20h2.4.11 实验程序:ICW1 equ 00010011b ; 单片8259A, 上升沿中断, 要写ICW4 ICW2 equ 00100000b ; 中断号为20HICW4 equ 00000001b ; 工作在8086/88 方式OCW1 equ 11111000b ; 只响应INT0, INT1, INT2 中断CS8259A equ 08000h ; 8259A地址CS8259B equ 08001hdata segmentMSG db 0, 0, 0, 0, 0, 0, 0, 0CNT db 0data endscode segmentassume cs:code, ds: dataIEnt0 proc nearpush axpush bxmov bx, offset MSGmov al, CNTmov ah, 0add bx, axmov [bx], 0inc CNTmov dx, CS8259Amov al, 20h ; 中断服务程序结束指令out dx, alpop bxpop axiretIEnt0 endpIEnt1 proc nearpush axpush bxmov bx, offset MSGmov al, CNTmov ah, 0add bx, axmov [bx], 1inc CNTmov dx, CS8259Amov al, 20h ; 中断服务程序结束指令out dx, alpop bxpop axiretIEnt1 endpIEnt2 proc nearpush axpush bxmov bx, offset MSGmov al, CNTmov ah, 0add bx, axmov [bx], 2inc CNTmov dx, CS8259Amov al, 20h ; 中断服务程序结束指令out dx, alpop bxpop axiretIEnt2 endpIInit procmov dx, CS8259Amov al, ICW1out dx, almov dx, CS8259Bmov al, ICW2out dx, almov al, ICW4out dx, almov al, OCW1out dx, alretIInit endpstart proc nearclimov ax, 0mov ds, axmov bx, 4*ICW2 ; 中断号mov ax, codeshl ax, 4 ; x 16add ax, offset IEnt0 ; 中断0入口地址(段地址为0)mov [bx], axinc bxinc bxmov [bx], 0 ; 代码段地址为0inc bxinc bxmov ax, codeshl ax, 4 ; x 16add ax, offset IEnt1 ; 中断1入口地址(段地址为0)mov [bx], axinc bxinc bxmov [bx], 0inc bxinc bxmov ax, codeshl ax, 4 ; x 16add ax, offset IEnt2 ; 中断2入口地址(段地址为0)mov [bx], axinc bxinc bxmov [bx], 0call IInitmov ax, datamov ds, axmov CNT, 0 ; 计数值初始为0stiLP: nop ; 等待中断,并计数。

jmp LPstart endpcode endsend start8259A内部结构图。

相关文档
最新文档