实验一 8259单级中断控制器实验
- 格式:doc
- 大小:100.00 KB
- 文档页数:6
数字逻辑与CPU实验报告实验内容:8259中断控制器、8253可编程定时/计数器接口实验姓名:班级:学号:实验一8259中断控制器实验一、实验目的1、掌握8259的工作原理。
2、掌握编写中断服务程序的方法。
3、掌握初始化中断向量的方法。
二、实验内容用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。
三、实验方法(1)连线1、单脉冲发生器输出P+与8259的IR0相连;2、8259的片选CS8259与CS0相连;3、8259的INT与8086的INT相连;4、CS273与CS1相连;5、00与LED1相连;其他线均已连好。
(2)在8086实验系统软件中编辑程序,编译链接后,调试程序,程序流程图如图2。
(3)调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处。
四、程序源代码CODE SEGMENT PUBLICASSUME CS:CODEORG 100H;设置堆栈起点0100HSTART: 图2 程序流程图 MOV DX,4A0HMOV AX,13H ;写ICW1,单片8259,要写ICW4OUT DX,AXMOV DX,4A2HMOV AX,80H ;写入ICW2,设定IR0中断类型吗为80HOUT DX,AXMOV AX,01 ;写入ICW4,设定一般嵌套,非自动EOI方式 OUT DX,AXMOV AX,0 ;写入OCW1,设定允许中断。
OUT DX,AXMOV AX,0MOV DS,AXMOV SI,200H ;中断向量预存放在0100:0200H(向量码80H) MOV AX,OFFSET HINT;取中断服务程序的入口地址MOV DS:[SI],AXADD SI 2MOV AX,CSMOV DS:[SI],AXSTI;开中断JMP $;原地跳转HINT:;中断服务程序XOR CX,0FFH;CX全部取反(8位)MOV DX,4B0H;CS273接口的地址,与8个LED灯相连MOV AX,CX;输出高低电平控制LED灯的亮灭OUT DX,AXMOV DX,4A0H ;OCW2的的地址MOV AX,20H;写入OCW2,一般EOI命令,全嵌套方式OUT DX,AXIRET;中断返回CODE ENDSEND START五、实验结果程序调试通过后,当我们按一次单脉冲发生器的输出开关,对应连好的灯就会亮。
【关键字】实验8259中断控制器实验报告篇一:8259中断控制器实验报告8259中断控制器实验报告作者:一实验目的1,掌握8259A的工作原理。
2,掌握编写中断服务程序方法。
3,掌握初始化中断向量的方法。
二,实验设备CPU挂箱,8086CPU模块图1-cpu挂箱三,实验内容用电平开关的输出作为中断源,每个开关对应于一个中断源。
在中断服务程序中,通过74LS273输出一个数据,以点亮于中断源对应位置的LED灯。
四,实验原理1.本实验用到三部分电路:电平开关电路、简单I/O扩展电路和8259中断控制器电路;2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;3.中断类型由8359通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;4.中断类型的高5位由8359寄存器ICW2决定,低3位由中断源IRx的编码自动填充,IRO~IR7的编码分别是000,001,010,011,100,101,110,111。
五,实验步骤1,实验接线CS0-CS8259 CS1-CS273 00~07-LED1~LED8 K1~K8-IR0~IR7 INT-INT(8086CPU 板) INTA-INTA(8086CPU板) 2,编译调试程序3,全速运路程度,拨动某一电平开关,观察LED的亮灭情况。
六,实验结果全速运路程序,由上向下拨动开关时,相应位置的LED灯点亮,其余LED灯全灭七,源代码ASSUME CS:CODECODE SEGMENT PUBLICORG 100H START: MOV CX,0 START1:CLIMOV DX,04A0HMOV AX,13HOUT DX,AXMOV DX,04A2HMOV AX,80HOUT DX,AXMOV AX,01HOUTDX,AXMOV AX,00HOUT DX,AXNOPMOV AX,0MOV DS,AXMOVADD DI,2DI,200H MOV DS:[DI],100H;初始化中断向量表MOV AX,OFFSET int0MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int1MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int2MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int3MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int4MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int5MOV DS:[DI],AXADD DI,2MOV AX,OFFSET int6MOV DS:[DI],AXADD DI,2MOV DS:[DI],100HADD DI,2MOV AX,OFFSET int7MOV DS:[DI],AXADD DI,2 ;上述程序为芯片8259的初始化程序MOV DS:[DI],100H MAIN:MOV AX,0STIWAITING: CMP AX,0HJE WAITINGMOV DX,04B0HOUT DX,AXMOV CX,0DELAY: LOOP DELAYJMP START1 Int0:CLINOPMOV AX,OFEHIRET Int1:CLINOPMOV AX,OFDHIRET Int2:CLINOPMOV AX,OFBHIRET Int3:CLINOPMOV AX,OF7HIRET Int4:CLINOPMOV AX,OEFHIRET Int5:CLINOPMOV AX,ODFHIRET Int6:CLINOPMOV AX,OBFHIRET Int7:CLINOPMOV AX,O7FHIRET篇二:8259中断控制实验报告深圳大学实验报告班级:实验时间:实验报告提交时间:教务处制篇三:微机接口实验报告8259中断控制器实验实验六8259中断控制器实验1 实验目的(1) 学习中断控制器8259的工作原理。
8259中断控制实验1 实验目的1. 掌握8259中断控制器的工作原理;2. 学习8259的应用编程方法;3. 掌握8259级联方式的使用方法。
2 实验设备PC机一台,TD-PITE实验装置一套。
3 实验内容及步骤1. 中断控制器8259简介在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。
该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。
从片的INT连接到主片的IR2信号上构成两片8259的级联。
在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。
8259的内部连接及外部管脚引出如图2-3-1所示。
INTR串口0MIR6MIR7SIR1图2-3-1 8259内部连续及外部管脚引出图表2-3-1列出了中断控制单元的寄存器相关信息。
表2-3-1 ICU寄存器列表初始化命令字1寄存器(ICW1)说明见图2-3-2所示。
ICW1图2-3-2 初始化命令字1寄存器初始化命令字2寄存器(ICW2)说明见图2-3-3所示。
7ICW2中断向量地址图2-3-3 初始化命令字2寄存器初始化命令字3寄存器(ICW3)说明,主片见图2-3-4,从片见图2-3-5。
7ICW3(主片)图2-3-4主片初始化命令字3寄存器7ICW3(从片)图2-3-5 从片初始化命令字3寄存器初始化命令字4寄存器(ICW4)说明见图2-3-6。
7ICW4图2-3-6 初始化命令字4寄存器操作命令字1寄存器(OCW1)说明见图2-3-7。
OCW1图2-3-7 操作命令字1寄存器操作命令字2寄存器(OCW2)说明如图2-3-8所示。
7OCW2图2-3-8 操作命令字2寄存器操作命令字3寄存器(OCW3)说明如图2-3-9所示。
7OCW3图2-3-9 操作命令字3寄存器查询状态字(POLL )说明如图2-3-10所示。
竭诚为您提供优质文档/双击可除8259中断控制器实验报告篇一:8259中断控制器实验报告8259中断控制器实验报告作者:一实验目的1,掌握8259A的工作原理。
2,掌握编写中断服务程序方法。
3,掌握初始化中断向量的方法。
二,实验设备cpu挂箱,8086cpu模块图1-cpu挂箱三,实验内容用电平开关的输出作为中断源,每个开关对应于一个中断源。
在中断服务程序中,通过74Ls273输出一个数据,以点亮于中断源对应位置的LeD灯。
四,实验原理1.本实验用到三部分电路:电平开关电路、简单I/o扩展电路和8259中断控制器电路;2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;3.中断类型由8359通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;4.中断类型的高5位由8359寄存器Icw2决定,低3位由中断源IRx的编码自动填充,IRo~IR7的编码分别是000,001,010,011,100,101,110,111。
五,实验步骤1,实验接线cs0-cs8259cs1-cs27300~07-LeD1~LeD8K1~K8-IR0~IR7InT-InT(8086cpu板)InTA-InTA(8086cpu板)2,编译调试程序3,全速运行程度,拨动某一电平开关,观察LeD的亮灭情况。
六,实验结果全速运行程序,由上向下拨动开关时,相应位置的LeD灯点亮,其余LeD灯全灭七,源代码Assumecs:coDecoDesegmenTpubLIcoRg100hsTART:moVcx,0sTART1:cLImoVDx,04A0hmoVAx,13houTDx,AxmoVDx,04A2hmoVAx,80h ouTDx,AxmoVAx,01houTDx,AxmoVAx,00houTDx,AxnopmoVAx,0moVDs,AxmoVADDDI,2DI,200hmoVDs:[DI],100h;初始化中断向量表moVAx,oFFseTint0moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint1moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint2moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint3moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint4moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint5moVDs:[DI],AxADDDI,2moVAx,oFFseTint6moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint7moVDs:[DI],AxADDDI,2;上述程序为芯片8259的初始化程序moVDs:[DI],100hmAIn:moVAx,0sTIwAITIng:cmpAx,0hJewAITIngmoVDx,04b0houTDx,AxmoVcx,0 DeLAY:LoopDeLAYJmpsTART1Int0:cLInopmoVAx,oFehIReTInt1:cLInopmoVAx,oFDhIReTInt2:cLInopmoVAx,oFbhIReTInt3:cLInopmoVAx,oF7hIReTInt4:cLInopmoVAx,oeFhIReTInt5:cLInopmoVAx,oDFhIReTInt6:cLInopmoVAx,obFhIReTInt7:cLInopmoVAx,o7FhIReT篇二:8259中断控制实验报告深圳大学实验报告班级:实验时间:实验报告提交时间:教务处制篇三:8259中断控制实验报告实验六8259中断控制一、实验目的1.学习8086/8088cpu中断系统的知识。
实验5 8259中断控制实验实验时间2019年11月27日
实验类型■验证性□设计性□综合性
1. 实验目的
掌握8259中断控制器的工作原理
2. 实验内容及过程(主要内容、操作步骤)
利用系统总线上中断请求信号MIR6,设计一个单一中断实验3. 测试数据及实验结果
4. 实验分析及总结(主要考察内容)
1.显示字符“7”时,前面的“0137H”中的“37H”是“7”的ASCII码,若要改变显示的字符,就更改ASCII码。
2.中断服务程序的入口地址有段基址和段内偏移,故有32位,一个中断在中断向量表里面占4个字节,这4个字节就是中断服务程序的入口地址。
实验第一步就是在初始化中断向量表,就是告诉系统中断服务程序在哪里,填上IQR6的段基址和段内偏移(38H-3BH)。
其次就是对8259A主从片进行初始化,很多东西可以不初始化,就用到了主片,8259A从片上也接了一个中断。
再下面就是中断服务程序,实验中中断服务程序有延时,但是在正常编程情况下中断服务程序决不允许有延时,中断服务程序要快进快出
教师评阅
评价指标:实验目的、操作步骤、设计、算法、程序结构、实验结果、实验分析、实验总结。
浙江工业大学计算机学院实验报告一、实验内容与要求1.1 实验内容直接用手动产生单脉冲作为中断请求信号。
要求每按一次开关产生一次中断,在屏幕上显示一次“This is n Interrupt!”,每次中断后都可以输出这是第几次中断,并且能超过10次(即两位数)。
1.2 实验要求(1)利用8259实现对外部中断的响应和处理;(2)程序对每次中断进行计数;(3)计数次数能超过10次;(4)每次响应能显示这是第几次响应。
二、实验原理与硬件连线2.1 实验原理PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。
IBMPC、PC/XT 机内有一片8259中断控制器对外可以提供8个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口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 O73H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留TPC-USB实验板上,将中断源固定接到3号中断IRQ3上,即进行中断实验时,所用中断类型号为0BH。
2.2 硬件连线“”插孔和8259的3号中断IR3插孔相连,“”端初始为低电平。
三、设计思路、步骤和程序流程图3.1 设计思路本实验利用8259的IRQ3中断响应,实现每输入一次脉冲就输出当前的次数,并且要超过10,与原本实验不同。
微机硬件实验8259单级中断控制器实验实验目的⑴掌握8259中断控制器的接口方法。
⑵掌握8259中断控制器的应用编程。
实验内容编制程序,利用8259芯片的IR作为中断源,产生单一中断,系统显示中断号7。
编程提示⑴8259芯片介绍器中断控制器8259A是专业性为控制优先级中断设计的芯片。
它将中断源优先级排队,对辩别中断源以及提供中断矢量的电路集于一片中。
因此无需附加任何电路,只需对8259A理进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用片户编程来设定。
同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。
用⑵本实验中使用7号中断源IR7,SP插孔和IR7相连,中断方式为边沿触发方式,每按二次AN按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1个字符7,满7次后显示P.继续等待中断。
实验步骤⑴按实验电路图连接线路:对于后缀名含有H的机型,按实验电路图连接138译码输入端A.B.C,其中A连连A2,B连连A3,C连连A4,138使能控制输入端G与位于地址线A0引出孔所在位置下方的使能控制输出端G作对应连接,该端的寻址范围为0FFE0H~0FFFFH。
①SP插孔和82597号中断IR7插孔相连,SP端初始为低电平。
②对于后缀名含有H的机型,8259的的CS端连138译码器的Y0孔。
③将8259的单元总线接口D0~D7,用8芯排线或8芯扁平线与数据总线单元D0~D7任一接口相连。
⑵运行实验程序在系统处于命令提示符P.状态下,输入3400,按EXEC键显示P.。
动⑶按动AN按钮,LED数码管从最高位开始依次显示7,显示满六位后,最高位显示P.继续等待中断。
8255A并行口实验㈠方波实验目的程掌握可编程I/O接口芯片8255的接口原理使用,熟悉对8255初始化编程和输入、输出软件的设计方法。
实验内容在在8255A.B.C口用示波器测出波形。
8259中断控制实验报告实验报告:8259中断控制实验一、实验目的:学习和掌握8259中断控制器的工作原理和使用方法。
二、实验设备:计算机、8259中断控制器芯片、连接线、示波器等。
三、实验原理:1.8259中断控制器简介8259是Intel公司推出的一个通用中断控制器芯片,它可以管理多种设备的中断请求,并对中断请求进行优先级排序和处理。
8259具有级联功能,可以通过级联实现更多的设备中断管理。
2.8259工作原理8259中断控制器有两个主要模块:中断请求译码器和中断向量地址寄存器。
中断请求译码器用于判断中断请求的优先级,按照优先级排序,将中断请求发送给CPU。
中断向量地址寄存器用于存储中断向量的地址,CPU根据中断向量的地址来执行相应的中断服务程序。
3.8259中断控制器的寄存器8259中断控制器有多个重要的寄存器,包括中断屏蔽寄存器、中断请求寄存器、中断服务地址寄存器等。
中断屏蔽寄存器用于屏蔽或打开特定中断请求。
中断请求寄存器用于存储当前的中断请求状态。
中断服务地址寄存器用于存储中断向量的地址。
四、实验内容:1.配置8259中断控制器将8259中断控制器连接到计算机,并通过连接线将适当的引脚连接到需要中断控制的设备上。
2.编写中断服务程序根据实验要求,编写相应的中断服务程序,并将其存储在中断服务地址寄存器指定的内存地址中。
3.设置中断向量地址将中断向量的地址存储在中断向量地址寄存器中,使CPU能够根据中断请求执行相应的中断服务程序。
4.测试中断控制功能通过测试设备向8259中断控制器发送中断请求,观察计算机是否能正确处理中断请求,并执行相应的中断服务程序。
五、实验结果与分析:经过以上实验步骤,我们成功配置了8259中断控制器,并编写了相应的中断服务程序。
在测试过程中,通过向8259中断控制器发送中断请求,我们观察到计算机正确地处理了中断请求,并执行了我们编写的中断服务程序。
这表明我们成功地完成了8259中断控制实验。
实验五使用8259A的单级中断控制实验一、实验目的1、掌握中断控制器8259A与微机接口的原理和方法。
2、掌握中断控制器8259A的应用编程。
二、预备知识1、8259A的内部结构8259A是专为控制优先级中断而设计的芯片。
它将中断源按优先级排队、辨认中断源、提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8 级中断。
b5E2RGbCAP如图5-19所示,它由中断请求寄存器(IRR>、优先级分析器、中断服务寄存器(ISR>、中断屏蔽寄存器(IMR>、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成。
p1EanqFDPw图5-19中断请求寄存器:寄存所有要求服务的请求IR0~IR7。
中断服务寄存器:寄存正在被服务的中断请求。
中断屏蔽寄存器:存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号,该位为1,屏蔽该号中断,否则开放该号中断。
DXDiTa9E3d 数据总线缓冲器:是双向三态的,用以连接系统总线和8259A内部总线,通过它可以由CPU对8259A写入状态字和控制字。
RTCrpUDGiT读写控制电路:用来接受I/O命令,对初始化命令和操作命令字寄存器进行写入,以确定8259A的工作方式和控制方式。
5PCzVD7HxA级联缓冲器/比较器:用于多片8259A的连接,能构成多达64级的矢量中断系统。
2、8259A编程及初始化(1> 写初始化命令字* 写初始化命令字ICW1(A0=0>,以确定中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队和确定系统用单片还是多片。
jLBHrnAILg* 写初始化命令字ICW2,以定义中断向量的高五位类型码。
* 写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从片。
xHAQX74J0X第i位=0,表明IRi引脚上无从片第i位=1,表明IRi引脚上有从片* 写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及中断服务寄存器复位方式等。
实验一8259单级中断控制器实验
一、实验目的
⒈掌握8259中断控制器的接口方法。
⒉掌握8259中断控制器的应用编程。
二、实验内容
利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。
三、实验接线图
图6-6
四、编程指南
⑴8259芯片介绍
中断控制器8259A是专为控制优先级中断而设计的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。
因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。
即中断结构可以由用户编程来设定。
同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。
⑵本实验中使用3号中断源IR3,“”插孔和IR3相连,中断方式为边沿触发方式,每拨二次AN开关产生一次中断,满5次中断,显示“8259——good”。
如果中断源电平信号不符合规定要求,则自动转到7号中断,显示“Err”。
五、实验程序框图
IR3中断服务程序:
IR7中断服务程序:
六、实验步骤
1、按图6-6连好实验线路图。
⑴ 8259的INT连8088的INTR;
⑵ 8259的INTA连8088的INTA;
⑶“”插孔和8259的3号中断IR3插孔相连,“”端初始为低电平;
⑷ 8259的CS端接FF80H孔;
⑸连JX4→JX17。
2、DJ-8086k软件启动和联机
⑴启动和联机。
双击桌面上‘DJ-8086k’快捷图标,即可运行DJ-8086k软件;
⑵新建文件:单击菜单栏“文件”或工具栏“新建”图标,即会建立一个新的源程序
编辑窗口,此时可在此窗口编辑、输入源程序(注:新建文件扩展名为 .ASM)。
或打开文件F3:单击菜单栏“文件”或工具栏“打开”图标,弹出“打开文件”的对话框,然后选择要装入的源文件,单击“确定”即可装入源文件。
;
3、调试程序
⑴编译装载F9:
打开源文件,依次单击:调试”\“编译装载F9”或工具栏上的编译装载图标,状
态栏会提示正在编译、编译成功、正在装载数据、装载数据结束,几秒钟后便会弹出‘源文件调试窗口’,如编译出错,会提示错误信息,待修改源文件正确后,重新编译装载即可;
⑵连续运行;
单击菜单栏“调试”下的“连续运行”或单击工具栏的连续运行图标,即全速连续运行程序,系统显示8259-1。
⑶在系统处于命令提示符“P.”状态下,输入12D0,按EXEC键,系统显示8259-1。
⑷拨动AN开关按钮,按满6次显示good。
七、实验程序清单
CODE SEGMENT ;H8259.ASM
ASSUME CS: CODE
INTPORT1 EQU 0FF80H
INTPORT2 EQU 0FF81H
INTQ3 EQU INTREEUP3
INTQ7 EQU INTREEUP7
PA EQU 0FF20H ;字位口
PB EQU 0FF21H ;字形口
PC EQU 0FF22H ;键入口
ORG 12D0H
START: JMP START0
BUF DB ?,?,?,?,?,?
intcnt db ?
data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH
START0: CLD
CALL BUF1
CALL WRINTVER ;WRITE INTRRUPT
MOV AL,13H
MOV DX,INTPORT1
OUT DX,AL
MOV AL,08H
MOV DX,INTPORT2
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,0F7H
OUT DX,AL
MOV intcnt,01H ;TIME=1
STI
WATING: CALL DISP ;DISP 8259-1
JMP WATING
WRINTVER: MOV AX,0H
MOV ES,AX
MOV DI,002CH
LEA AX,INTQ3
STOSW
MOV AX,0000h
STOSW
MOV DI,003CH
LEA AX,INTQ7
STOSW
MOV AX,0000h
STOSW
RET
INTREEUP3: CLI
push ax
push bx
push cx
push dx
MOV AL,INTCNT
CALL CONVERS
MOV BX,OFFSET BUF ;077BH
MOV AL,10H
MOV CX,05H
INTRE0: MOV [BX] AL
INC BX
LOOP INTRE0
MOV AL,20H
MOV DX,INTPORT1
OUT DX,AL
ADD INTCNT,01H
CMP INTCNT,06H
JNA INTRE2
CALL BUF2 ;DISP:good
INTRE1: CALL DISP
JMP INTRE1
CONVERS: AND AL,0FH
MOV BX,offset buf ;077AH
MOV [BX+5],AL
RET
INTRE2: MOV AL,20H
MOV DX,INTPORT1
OUT DX,AL
pop dx
pop cx
pop bx
pop ax
STI
IRET
INTREEUP7: CLI
MOV AL,20H
MOV DX,INTPORT1
OUT DX,AL
call buf3 ;disp:err
INTRE3: CALL DISP
JMP INTRE3
DISP: MOV AL,0FFH ;00H
MOV DX,PA
OUT DX,AL
MOV CL,0DFH ;20H ;显示子程序 ,5ms
MOV BX,OFFSET BUF
DIS1: MOV AL,[BX]
MOV AH,00H
PUSH BX
MOV BX,OFFSET DATA1
ADD BX,AX
MOV AL,[BX]
POP BX
MOV DX,PB
OUT DX,AL
MOV AL,CL
MOV DX,PA
OUT DX,AL
PUSH CX
DIS2: MOV CX,00A0H
LOOP $
POP CX
CMP CL,0FEH ;01H
JZ LX1
INC BX
ROR CL,1 ;SHR CL,1
JMP DIS1
LX1: MOV AL,0FFH
MOV DX,PB
OUT DX,AL
RET
BUF1: MOV BUF,08H
MOV BUF+1,02H
MOV BUF+2,05H
MOV BUF+3,09H
MOV BUF+4,17H
MOV BUF+5,01H
RET
BUF2: MOV BUF,09H
MOV BUF+1,00H
MOV BUF+2,00H
MOV BUF+3,0dH
MOV BUF+4,10H
MOV BUF+5,10H
RET
BUF3: MOV BUF,0eH
MOV BUF+1,18H
MOV BUF+2,18H
MOV BUF+3,10H
MOV BUF+4,10H
MOV BUF+5,10H
RET
CODE ENDS
END START
七、思考题
若用IR5产生中断,中断3次显示‘STOP’,要求修改硬件和软件并调试,。