微机接口实验报告-8259中断控制器应用实验
- 格式:doc
- 大小:350.00 KB
- 文档页数:8
实验六8259中断控制器实验1 实验目的(1) 学习中断控制器8259的工作原理。
(2) 掌握可编程控制器8259的应用编程方法。
3 实验内容编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。
4 实验原理1. 8259控制器的介绍中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。
它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。
8259A 的内部结构和引脚如图6-1所示。
8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
2.8259寄存器及命令的控制访问在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。
对寄存器和命令的访问控制如表6-1所示。
图6-1 8259内部结构和引脚图图6-2(a) ICW1格式图6-2(b) ICW2格式图6-2(c) ICW3格式图6-2(d) ICW4格式图6-3 OCW命令字格式3. PC微机系统中的8259在80x86系列PC微机系统中,系统中包含了两片8259A中断控制器,经级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表6-2示。
实验报告
一、实验目的
⑴掌握8259中断控制器的接口方法。
⑵掌握8259中断控制器的应用编程。
二、实验内容
编制程序,利用8259芯片的IR作为中断源,产生单一中断,系统显示中断号“7”。
三、实验过程
(1)实验连线
(2)实验步骤
编写源程序,编译、装载,连续运行程序,按动AN按钮,LED数码管从最高位开始依次显示“7”,显示满后,最高位显示“P.”,继续等待中断。
四、实验总结(不少于150字)
最高位显示“P.”:
LED数码管从最高位开始依次显示“7”:
心得体会:
这次试验是一次硬件的实验,与以前的实验有很大的不同(以前的是软件实验)。
硬件实验与软件实验最大的不同就是,硬件实验室需要连线,不管你的实验能不能成功,都要先把线连好,否则就没有成功一说
五、思考题
若改用其他中断源,应怎样修改连线及程序?(不少于100字)
试从端口地址、初始化工作方式、系统功能调用入口参数及出口参数设置以及硬件连线几个方面进行阐述。
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所示。
姓名:学号:2.3 8259中断控制实验2.3.1 实验目的1. 掌握8259中断控制器的工作原理;2. 学习8259的应用编程方法;3. 掌握8259级联方式的使用方法。
2.3.2 实验设备PC机一台,TD-PITE实验装置一套。
2.3.3 实验内容及步骤1、8259单中断实验8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。
图2-3-11 8259单中断实验接线图实验步骤(1)按图2-3-11连接实验线路;(2)编写实验程序,经编译、链接无误后装入系统;(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”以说明响应了中断。
实验结果分析主程序运行过程中遇到中断请求,进而响应中断请求,即在屏幕上输出字符“7”。
实验流程图2、主8259 多中断实验实验步骤:(1)按上图所示完成实验电路连线。
KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR6上。
(2)打开PC机,运行Wmd86软件,进入Wmd86集成开发环境。
(3)对程序进行编译、连接、加载和运行,并验证实验程序的正确性。
(4)分别按动单次脉冲开关KK1+或KK2+时,显示屏上会显示什么信息,将屏幕截图填在实验报告数据处理分析部分的表2中。
(5)如果同时按KK1+和KK2+时,显示屏上会显示什么信息,并在实验结论对实验结果进行解释。
流程图中断请求分析与实验一相比,中断向量表多存储了M6。
主程序在运行过程中接到中断请求,于是响应中断,在处理中断程序的过程中再次接到中断请求,于是再次响应中断,处理中断程序。
处理完后逐层返回。
3. 8259级联实验实验接线图如图2-3-12所示,KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR1上,当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。
编写程序。
实验步骤(1)按图2-3-12连接实验线路;(2)输入程序,编译、链接无误后装入系统;(3)运行程序,按动KK1+或KK2+,观察实验结果,验证实验程序的正确性; (4)若同时按下KK1+和KK2+,观察实验结果,解释实验现象。
竭诚为您提供优质文档/双击可除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中断系统的知识。
微机-实验三-8259可编程中断控制器实验集美大学计算机工程学院实验报告课程名称:微型计算机指导教师:颜庆茁实验成绩:实验编号:实验三实验名称:8259可编程中断控制器实验班级:计算12 姓名:学号:上机实践日期:2014.11 上机实践时间:2学时一、实验目的1、了解8259A芯片的工作原理。
学会使用8259A中断控制芯片实现对外部中断的响应和处理;2、了解8259A内部结构和熟悉8086的接口逻辑;3、掌握对8259A的初始化编程方法和8086是如何响应中断、退出中断。
二、实验设备STAR系列试验仪一套、星研集成软件环境、PC机一台三、实验内容1、设计8259A与8086CPU硬件连接图,分配8259A端口地址为9000H,9001H;2、设计8259A的外围连接,实现拨动单脉冲开关触发8259A中断,8086计数中断次数并显示于G5区的数码管LED上;3、中断次数的显示需调用系统给定的显示子程序DISPLAY8。
程序开始处必须设置外部连接,告诉汇编程序该显示程序在何处(即对应单元必须送10H),若要让它显示数字,则把数字值直接送到响应的显示缓冲区单元就可以显示了;4、要保证DISPLAY8能正常显示,必须使得8279键盘/LED控制器能正确运行;5、基于所设计的硬件及其连接,编写程序流程图,并编写程序实现8086对中断次数的计数及显示。
四、实验拓展思考1、从8259A收到上升沿,到8088响应中断,试画出这个过程的时序图。
2、把出发脉冲改为由8253产生,中断时间间隔为1S,设计硬件连接图,编写程序流程图,并设计程序实现。
3、设计一实时时钟。
五、实验步骤1、电路设计2、在STAR系列试验仪上完成连线B3:CS、A0 ——A3:CS7、A0B3:INT、INTA ——ES8088:INTR、INTA B3:IR2 ——C5:OUT1E5:CS、A0 ——A3:A0E5:CLK ——B2:2MHZE5:B、C ——G5:B、CC5:CS、A0、A1 ——A3:CS1、A0、A1C5:CLK0 ——B2:2MC5:OUT0 ——C5:CLK1C5:GATE0、GATE1 ——C1:VCC3、编写程序流程图及汇编程序程序流程图:程序见附录开始8253初始化(计数器0方式2,计数器1方式3)计数器0送入初值1000(1000分频)计数器1送入初值8259初始化(上升沿触发,单片,不需要ICW4)ICW2控制字0AH,ICW3控制字0DHICW控制字0FBH中断服务程序地址放置内存判断中断是否到来结束8259可编程中断开中断是FLAG=1调用中断程序COUNT值BCD加1并进行BCD码调整否FLAG=0调用LED显示子程序IRETSTIJS: CMP FLAG,0JZ JSCMP COUNT2,18HJG l1CALL LEDl1: MOV FLAG,0INT_TO PROCMOV AX,0MOV ES,AXMOV DI,28H ;过程的中断向量在表内的偏移量MOV AX,OFFSET INTACLDSTOSWMOV AX,CS ;中断程序的断地址STOSWRETINT_TO ENDPLED PROCMOV AL,COUNT0DAAMOV AH,ALAND AL,0FHMOV BUFFER,ALAND AH,0F0H ROR AH,4MOV BUFFER+1,AH MOV AL,COUNT1 DAAMOV AH,ALAND AL,0FH MOV BUFFER+2,AL AND AH,0F0H ROR AH,4MOV BUFFER+3,AH MOV AL,COUNT2 DAAMOV AH,ALAND AL,0FH MOV BUFFER+2,AL AND AH,0F0H ROR AH,4MOV BUFFER+5,AH MOV BUFFER+6,10H MOV BUFFER+7,10H LEA SI,BUFFER CALL DISPLAY8 RETLED ENDPINTA: PUSH DX PUSH AXINC COUNT0CMP COUNT0,3CH JNZ I1INC COUNT1MOV COUNT0,0I1: CMP COUNT1,3CH JNZ I2INC COUNT2MOV COUNT1,0I2: CMP COUNT2,18H JNZ I3MOV COUNT2,0I3: MOV FLAG,1 MOV DX,09000H MOV AL,20HOUT DX,ALPOP AXPOP DXIRETEND START。
实验三、8259中断控制器实验1.实验目的(1).掌握中断控制器8259 IP核的工作原理,熟悉对8259的初始化设置。
(2).掌握中断服务程序的编写方法。
(3).掌握程序固化及脱机运行程序的方法。
2.实验原理8259的工作原理。
参考微机原理与接口技术相关教材。
使用中断控制器8259,首先要对8259初始化,对初始化命令字ICW1~ICW4进行设置,初始化命令字的格式如表3-1所示。
8259 - P rogrammble Intrrupt Controller图3-1 8259 可编程中断控制器表3-1 初始化命令字ICW1~ICW4数据格式:子程序的入口地址写入中断向量表。
另外要编写相关的中断服务子程序。
8259的端口地址如下:PIC_ICW1 EQU 20HPIC_ICW2 EQU 21HPIC_ICW3 EQU 21HPIC_ICW4 EQU 21Hppt 8255的端口地址是:port A 378h ;PA接2个LED数码管port B 379h ;PB接8个LED 发光二极管port C 37ah ;PC口ppt_ctrl 37bh ;控制字口ppi 8255的端口地址是:port A 060h ;PA接4×4键盘和LCD液晶模块port B 061h ;PB 最低位控制计数器2门控信号port C 062h ;PC pc.0控制ppi portA 输入使能ppt_ctrl 063h ;控制字口定时器/计数器8254的端口地址:PIT_CNT0 EQU 40HPIT_CNT1 EQU 41HPIT_CNT2 EQU 42HPIT_CTRL EQU 43H3.实验内容(1)中断计数显示程序本实验主要验证中断控制器8259的中断控制功能。
中断请求信号由按键产生,该按键向8259的IR1发出中断请求,每中断一次,寄存器加1计数,并通过8255的PA口外接的数码管显示出中断的次数。
PA 口输出使能由PC口最低位控制。
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.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中断控制器实验一、实验目的本实验的目的是通过对8259中断控制器的实验,掌握和理解8259中断控制器的原理、工作原理和使用方法。
通过实验能够进一步了解中断控制器的中断分配和中断处理等功能。
同时还能够通过实验,对中断优先级以及中断的屏蔽和响应进行深入了解。
二、实验原理1.8259中断控制器简介8259中断控制器是用于管理和控制多个硬件设备的中断请求的重要芯片。
它是一个具有8个中断请求输入和8个中断向CPU输出的优先级解码器。
中断控制器主要由两个部分组成:中断请求器部分和中断控制器部分。
中断请求器部分用于产生中断请求信号,而中断控制器部分用于优先级解码和中断分配。
2.8259中断控制器的工作原理8259中断控制器可以管理多个硬件设备的中断请求,同时对中断信号进行优先级判断和派发给CPU进行相应处理。
当一些硬件设备发生中断时,会发送中断请求信号给8259中断控制器,然后8259将根据中断请求的优先级判断是否屏蔽或者响应该中断请求。
3.8259中断控制器的使用方法在使用8259中断控制器时,首先需要设置中断控制器的工作模式和中断请求的优先级,然后对中断控制器的屏蔽和响应进行相应的配置。
使用中断控制器时,还需要对中断服务程序进行适当的编程,以实现中断的处理逻辑。
三、实验步骤1.实验前的准备工作(1)准备实验所需的开发板和8259中断控制器。
(2)将8259中断控制器与相应的硬件设备连接。
(3)准备PC机和开发板的通信线缆。
2.8259中断控制器的设置和初始化(1)通过编程方式将8259中断控制器设置为特定的工作模式。
(2)设置中断请求(IRQ)的优先级。
3.中断服务程序的编写(1)根据需求编写中断服务程序,即中断处理逻辑。
(2)将中断服务程序与8259中断控制器的相应中断请求进行关联。
4.实验结果的观察和分析(1)观察测试硬件设备的输出结果。
(2)分析实验结果,判断是否成功实现中断控制和处理。
实验五、8259中断控制器实验和作业实验题目:8259中断控制器点亮LED灯实验一、实验目的了解8259中断控制器的基本使用,掌握中断程序编程技术。
二、实验内容使用单脉冲电路产生的脉冲信号作为386EX模块8259中断请求输入,每按一次单脉冲按键,触发一次中断,通过8255 PC0驱动LED交替亮和灭,硬件连接如题图所示。
基础三题图、8259中断控制器实验连线示意图三、实验提示MIR5是接到PC的主8259A中断控制器的IR5端,因此不需要对8259A初始化(ICW1-ICW4),但要进行设置中断矢量和打开中断等操作;注意:TPC实验平台中采用的是非自动结束,则需要在中断结束前(中断服务程序的最后)发中断结束命令。
另外、写入中断屏蔽字应采用“读—修改—写”过程,如下所述:IN AL,21HAND AL,0DFH软件实现流程图.MODEL SMALL.386CODE SEGMENTASSUME CS:CODESTART: MOV DX,203HMOV AL,90H ;设置8255控制字,OUT DX,ALMOV CL,0CLI ;关386 CPU中断;写入中断屏蔽字OCW1时,采用读取-修改-写入的顺序IN AL,21HAND AL,11011111B ;MASK BYTEOUT 21H,AL;将中断入口地址写入中断向量表PUSH DSMOV BX,0MOV DS,BXLEA AX,CS:INT_PROC ;将中断程序的入口地址给AXMOV BX,5 ;N=IRX 中断IR5MOV SI,30H ;BASE =30H 基址ADD SI,BX;基址+IR5=中断类型号为35HSAL SI,2 ; 中断类型号为35H X 4=中断向量存于SIMOV DS:[SI],AX ;将入口地址AX送到中断向量表中PUSH CSPOP AXMOV DS:[SI+2],AXPOP DSSTI ;开386 CPU中断LLL: JMP LLLINT_PROC PROC FARPUSH AXCMP CL,0JZ SET0MOV DX,203H ;PC0=1MOV AL,01OUT DX,ALMOV CL,0JMP ENDINTSET0: MOV DX,203H ;PC0=0MOV AL,00OUT DX,ALMOV CL,1ENDINT:MOV AL,20HOUT 20H,ALPOP AXSTIIRETINT_PROC ENDPCODE ENDSEND START。
接口技术实验报告实验四:8259中断控制器实验一、实验目的1、掌握8259中断控制器的接口方法。
2、掌握8259中断控制器的应用编程。
二、实验设备微机原理实验箱、8086CPU模块。
三、实验内容用脉冲发生器作为中断源,每按一次脉冲发生器的按键即产生一次中断。
在中断服务程序中,通过74LS273输出一个数据,以点亮与中断源相对应位置的LED。
四、实验原理介绍8259中断控制器电路本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。
电平开关电路、简单I/O口扩展电路参看实验一。
8259中断控制器电路:如上图所示,其中:CS是8259芯片的片选插孔,IR0~IR7是8259的中断申请输入插孔。
DBUS是系统8位数据总线。
INT插孔是8259向8086CPU的中断申请线,INTA是8086的中断应答信号。
五、实验步骤1.断电连接导线,连好实验线路图。
1)8259的INT连8088的INTR;2)8259的INTA连8088的INTA;3)“”插孔和8259的3号中断IR3插孔相连,“”端初始为低电平;4)8259的CS端接FF80H孔,74LS273的CS端接FF90H孔。
5)Q0~Q7 L1~L82.编译调试程序3.全速运行,观察实验现象六、实验提示1、8259芯片介绍中断控制器8259A是专为控制优先级中断而设计的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。
因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。
即中断结构可以由用户编程来设定。
同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。
2、8086的中断系统是向量中断方式。
内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量(中断入口地址)。
不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。
实验六 8259中断控制(1)一、实验目的1. 学习8086/8088 CPU中断系统的知识。
2. 学习8259中断控制器的使用。
二、实验内容编写程序,使8255的A口控制LED灯。
CPU执行主程序时四个绿灯亮。
用“”作为8259的IR3的输入信号,向CPU请求中断。
CPU在中断服务程序中熄灭绿灯,并使4个红灯亮。
中断服务程序结束,又返回主程序,再使绿灯亮。
三、实验区域电路连接图8259的INT连8088的INTR(Xl5);8259的INTA连8088的INTA(Xl2);“”插孔和8259的3号中断IR3插孔相连;(单脉冲与时钟单元);8259的CS端接EX1(60H);连JX4→JX17。
IOWR→IOWR;IORD→IORD;A0→A0;PA0…PA3→L2,L6,L10,L14; PA4…PA7→L3,L7,L11,L15。
四、实验步骤1、按连线图接好,检查无误后打开试验箱电源。
通过在计算机上进行设置将试验箱与电脑连接。
2、根据功能要求在 PC 端软件开发平台上编写程序代码,编译通过后下载到试验箱。
在试验箱上检测程序运行的结果。
3、在试验箱上检测程序运行的结果。
即运行程序后,绿色LED灯点亮表面程序运行在主程序。
按下AN开关按钮,应当红色LED灯亮,绿色LED灯灭,表明在执行中断服务程序;过一会儿红灯熄灭了,绿灯又亮了起来,表明中断服务程序已返回了主程序。
4、如果运行结果不正确就要检查连线和程序,修改直到正确。
五、程序框图六、程序代码CODE SEGMENTASSUME CS:CODEINTPORT1 EQU 0060HINTPORT2 EQU 0061HINTQ3 EQU INTREEUP3INTCNT DB ?ORG 1200HSTART:CLDMOV DX,0FF2BHMOV AL,80H/设置8255方式字为10000000/OUT DX,ALCALL WRINTVERMOV AL,13HMOV DX,INTPORT1OUT DX,ALMOV AL,08HMOV DX,INTPORT2OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0F7HOUT DX,ALMOV INTCNT,01HSTI/开中断/WATING:MOV DX,0FF28HMOV AL,0F0HOUT DX,ALJMP WATING/跳转到WATING,使绿灯持续亮/ WRINTVER:MOV AX,0HMOV ES,AXMOV DI,002CHLEA AX,INTQ3STOSW/送偏移地址/MOV AX,0000HSTOSW/送段地址/RETINTREEUP3:CLI/关中断/PUSH AXPUSH DX /现场保护/MOV DX,0FF28HMOV AL,0FHOUT DX,ALMOV BL,0FHDELAY: MOV AX,0FFFFHDELAY1:DEC AXJNZ DELAY1DEC BLJNZ DELAYINTRE2:MOV AL,20HMOV DX,INTPORT1OUT DX,ALPOP DXPOP AXSTI/开中断/IRETCODE ENDSEND START。
实验六 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的初始化设置含义。
8259中断实验报告引言本实验旨在通过实践掌握8259中断控制器的工作原理和使用方法。
8259中断控制器是一种在计算机系统中用于管理和调度中断请求的硬件设备。
本实验将通过编写代码并进行实际测试,来展示8259中断控制器的功能和效果。
实验过程步骤一:准备工作在开始实验之前,我们需要准备以下材料和工具:•一台支持8259中断控制器的计算机•8259中断控制器的手册或技术资料•一份适用于目标计算机系统的编程环境步骤二:了解8259中断控制器在开始编写代码之前,我们需要对8259中断控制器有一定的了解。
查阅8259中断控制器的手册或技术资料,了解其工作原理、寄存器结构和编程方法。
步骤三:编写初始化代码在开始使用8259中断控制器之前,我们需要对其进行初始化配置。
根据目标计算机系统的要求,编写初始化代码,并将其加载到计算机系统中。
步骤四:编写中断处理程序中断处理程序是在发生中断请求时由8259中断控制器调用的代码段。
根据实际需求,编写中断处理程序,并将其加载到计算机系统中。
步骤五:测试代码在完成初始化和中断处理程序的编写后,我们需要进行代码测试。
通过触发中断请求,检查中断处理程序是否能够正确地被调用和执行。
步骤六:分析实验结果根据测试结果,分析实验中发生的问题和异常情况。
比较预期结果与实际结果之间的差异,并进一步优化代码和配置。
结果与讨论在本实验中,我们成功地使用了8259中断控制器,并编写了相应的初始化代码和中断处理程序。
经过测试,中断处理程序能够正确地被调用和执行。
然而,在实验过程中也遇到了一些问题。
例如,可能会出现中断处理程序无法正确响应中断请求的情况。
这可能是由于配置不当或代码逻辑错误所致。
在遇到问题时,我们可以通过查阅8259中断控制器的手册或技术资料,以及调试工具来进行排查和修复。
通过本实验,我们进一步加深了对8259中断控制器的理解,掌握了其工作原理和使用方法。
在实际应用中,8259中断控制器可以广泛应用于各种计算机系统,提供可靠的中断管理和调度功能。
8259中断实验报告8259中断实验报告概述:8259中断控制器是一种重要的硬件设备,用于管理和处理计算机系统中的中断请求。
本实验旨在通过对8259中断控制器的实际应用,深入理解中断的概念、工作原理和实现方法。
实验目的:1. 了解中断的基本概念和作用;2. 掌握8259中断控制器的工作原理;3. 熟悉8259中断控制器的编程方法;4. 实现一个简单的中断处理程序。
实验设备:1. 计算机;2. 8259中断控制器;3. 开发工具。
实验步骤:1. 硬件连接:将8259中断控制器与计算机主板相连,确保连接正确稳定。
2. 编程准备:打开开发工具,创建一个新的工程,选择适当的编程语言。
3. 初始化8259中断控制器:在程序中调用相应的函数,设置8259中断控制器的工作模式、中断向量表等。
4. 编写中断处理程序:根据实际需求,编写一个简单的中断处理程序,例如键盘输入中断处理程序。
5. 编译、链接和调试:对程序进行编译、链接,生成可执行文件,并进行调试,确保程序的正确性和稳定性。
6. 实验结果分析:运行程序,观察中断处理程序的执行情况,分析中断的触发条件、处理过程和效果。
实验心得:通过本次实验,我深入了解了中断的概念和作用,掌握了8259中断控制器的工作原理和编程方法。
在实际操作中,我遇到了一些问题,例如连接错误、程序调试等,但通过不断尝试和调整,最终成功实现了一个简单的中断处理程序。
这次实验对我来说是一次很好的学习机会,不仅加深了对中断的理解,还提高了我的编程能力和问题解决能力。
总结:中断是计算机系统中一个重要的概念,对于提高系统的响应速度和处理效率具有重要意义。
8259中断控制器作为中断管理和处理的关键设备,其工作原理和编程方法需要我们深入了解和掌握。
通过本次实验,我对中断和8259中断控制器有了更深入的理解,并通过实际操作加深了对中断处理程序的编写和调试的经验。
这对我今后的学习和工作都具有重要的参考价值。
第1篇一、实验目的1. 理解中断的概念和作用;2. 掌握中断系统的组成和基本工作原理;3. 熟悉中断向量表、中断服务程序和中断处理过程;4. 通过实验验证中断系统的正确性和可靠性。
二、实验原理1. 中断的概念:中断是CPU在执行程序过程中,由于某些事件的发生,暂时停止当前程序的执行,转而执行相应的事件处理程序的过程。
2. 中断系统的组成:中断系统主要由中断控制器、中断源、中断向量表、中断服务程序和CPU等组成。
3. 中断向量表:中断向量表是存储中断服务程序入口地址的表格,其中每个中断向量对应一个中断服务程序。
4. 中断服务程序:中断服务程序是处理中断事件的核心程序,用于完成中断事件的处理任务。
5. 中断处理过程:当中断事件发生时,CPU会根据中断向量表找到对应的中断服务程序入口地址,并跳转到该地址执行中断服务程序。
三、实验仪器与设备1. 实验台:微机原理实验台2. 电脑:一台3. 软件环境:Keil uVision、emu8086等四、实验步骤1. 启动实验台,打开微机原理实验台软件。
2. 在软件中设置实验参数,如中断源、中断向量等。
3. 编写中断服务程序,实现中断事件的处理任务。
4. 编写主程序,调用中断服务程序。
5. 运行实验程序,观察中断系统的运行情况。
五、实验内容1. 实验一:单级中断系统(1)设置一个外部中断源,如按键中断。
(2)编写中断服务程序,实现按键按下时的处理任务。
(3)在主程序中调用中断服务程序。
2. 实验二:多级中断系统(1)设置两个外部中断源,如按键中断和定时器中断。
(2)编写中断服务程序,实现按键中断和定时器中断的处理任务。
(3)设置中断优先级,实现多级中断。
(4)在主程序中调用中断服务程序。
3. 实验三:中断嵌套(1)设置两个外部中断源,如按键中断和定时器中断。
(2)编写中断服务程序,实现按键中断和定时器中断的处理任务。
(3)实现中断嵌套,即在定时器中断服务程序中再次触发按键中断。
西安交通大学实验报告第页共页课程微机原理与接口技术实验系别生物医学工程实验日期年月日专业班级组别交报告日期年月日姓名学号报告退发(订正、重做)同组者教师审批签字实验名称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中断控制器实验指导老师【实验目的】(1)学习中断控制器8259的工作原理。
(2)掌握可编程控制器8259的应用编程方法。
【试验设备】PC微机一台、TD-PIT+实验系统一套。
【实验内容】(1) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。
(2) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“9”,中断显示6次后退出。
【实验原理】1. 8259控制器的介绍中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。
它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。
8259A的内部结构和引脚如图6-1所示。
8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1- OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
图6-1 8259内部结构和引脚图姓名院专业班年月日实验内容8259中断控制器实验指导老师图6-2(a) ICW1格式图6-2(b) ICW2格式图6-2(c) ICW3格式图6-2(d) ICW4格式姓名院专业班年月日实验内容8259中断控制器实验指导老师图6-3 OCW命令字格式2. 8259寄存器及命令的控制访问在硬件系统中,8259A仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的器和命令字。
对寄存器和命令的访问控制表如表6-1所示。
表6-1 8259寄存器及命令的访问控制3. PC微机系统中的8259在80x86系列PC微机系统中,系统中包含了两片8259A中断控制器,经级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表6-2示。
两片8259A的端口地址为:主片8259使用020H和021H两个端口;从片使用0A0H和0A1H两个端口。
系统初始化两片姓名院专业班年月日实验内容8259中断控制器实验指导老师8259的中断请求信号均采用上升沿触发,采用全嵌套方式,优先级的排列次序为0级最高,依次为1级、8级~15级,然后是3级~7级。
在扩展系统总线上的INTR对应的中断线就是PC机保留中断其中的一个。
对INTR中断的初始化PC机已经完成,在使用时主要是将其中断屏蔽打开,修改中断向量。
表6-2 PC微机系统中的硬件中断中断号功能中断向量号中断向量地址主8259A IRQ0 日时钟/计数器0 08H 0020H~0023H主8259A IRQ1键盘09H 0024H~0027H主8259A IRQ2接从片8259A 0AH 0028H~002BH主8259A IRQ3串行口2 0BH 002CH~002FH主8259A IRQ4串行口1 0CH 0030H~0033H主8259A IRQ5并行口2 0DH 0034H~0037H主8259A IRQ6软盘0EH 0038H~003BH主8259A IRQ7并行口1 0FH 003CH~003FH从8259A IRQ8实时钟70H 01C0H~01C3H从8259A IRQ9保留71H 01C4H~01C7H从8259A IRQ10保留72H 01C8H~01CBH从8259A IRQ11保留73H 01CCH~01CFH从8259A IRQ12保留74H 01D0H~01D3H从8259A IRQ13协处理器中断75H 01D4H~01D7H从8259A IRQ14硬盘控制器76H 01D8H~01DBH从8259A IRQ15保留77H 01DCH~01DFH 【实验说明及步骤】本实验要求使用总线上INTR中断请求线完成一次单中断应用实验。
中断处理程序完成在屏幕上的显示字符“9”。
实验前先运行CHECK程序,得到INTR所对应的中断号、相应的初始化命令字寄存器ICW及操作命令字寄存器OCW的地址、开屏蔽的命令字、中断矢量地址和PCI卡中断控制寄存器INTCSR的地址。
得到这些信息后就可以开始设计实验了。
参考程序流程如图6-5所示。
实验步骤如下。
(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上;(2)首先运行CHECK程序,查看INTR中断号及相关信息;(3)参考实验流程图编写程序,然后编译链接;(4)将单次脉冲单元的KK1+连接到系统总线上的INTR;(5)运行程序,按动KK1+按键,观察中断是否产生。
姓名院专业班年月日实验内容8259中断控制器实验指导老师图6-5 8259终端应用实验(1)参考程序流程图【汇编源程序】实验1:INTR_IVADD EQU 01CCH INTR_0CW1 EQU 0A1H INTR_0CW2 EQU 0A0H INTR_IM EQU 0F7H PCI_INTCSR EQU 7878H STACK1 SEGMENT STACKDW 256 DUP(?) STACK ENDSDATA SEGMENT CS_BAK DW ?IP_BAK DW ?IM_BAK DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE START:MOV AX,DATAMOV DS,AXCLIMOV AX,PCI_INTCSR姓名院专业班年月日实验内容8259中断控制器实验指导老师MOV AX,1F00HOUT DX,AXADD DX,2MOV AX,003FHMOV DX,AXMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX,ES:[DI]MOV IP_BAK,AXMOV AX,OFFSET MYISRMOV ES:[DI],AXMOV DI,2MOV AX,ES:[DI]MOV CS_BAK,AXADD DI,2MOV AX,ES:[DI]MOV CS_BAK,AXMOV AX,SEG MYISRMOV ES:[DI],AXMOV DX,INTR_0CW1IN AL,DXMOV IM_BAK,ALADD AL,INTR_IMOUT DX,ALSTIWAIT1:MOV AH,1INT 16HJZ WAIT1QUIT: CLIMOV DX,PCI_INTCSRMOV AX,0000HOUT DX,AXMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX.IP_BAKMOV ES:[DI],AXMOV DI,2MOV AX,CS_BAKMOV ES:[DI],AXMOV DX,INTR_0CW1MOV AL,IM_BAKOUT DX,ALSTIMOV AX,4C00HINT 21HMYISR PROC NEARMOV AL,39HMOV AH,0EHINT 10HMOV AL,20HINT 10HOVER:MOV DX,PCI_INTCSR ADD DX,2MOV AH,003FHOUT DX,AXMOV DX,INTR_0CW2MOV AL,20HOUT DX,ALMOV AL,20HOUT 20H,ALIRETMYISR ENDPCODE ENDSEND START姓名院专业班年月日实验内容8259中断控制器实验指导老师实验2:INTR_IVADD EQU 01CCH INTR_0CW1 EQU 0A1H INTR_0CW2 EQU 0A0H INTR_IM EQU 0F7H PCI_INTCSR EQU 7878H STACK1 SEGMENT STACKDW 256 DUP(?) STACK ENDSDATA SEGMENTCS_BAK DW ?IP_BAK DW ?IM_BAK DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE START:MOV AX,DATAMOV DS,AXMOV CX,0CLIMOV AX,PCI_INTCSRMOV AX,1F00HOUT DX,AXADD DX,2MOV AX,003FHMOV DX,AXMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX,ES:[DI]MOV IP_BAK,AXMOV AX,OFFSET MYISRMOV ES:[DI],AXMOV DI,2MOV AX,ES:[DI]MOV CS_BAK,AXADD DI,2MOV AX,ES:[DI]MOV CS_BAK,AXMOV AX,SEG MYISRMOV ES:[DI],AXMOV DX,INTR_0CW1IN AL,DXMOV IM_BAK,ALADD AL,INTR_IMOUT DX,ALMOV CX,0STIWAIT1:CMP CX,6JNZ WAIT1 QUIT: CLIMOV DX,PCI_INTCSRMOV AX,0000HOUT DX,AXMOV AX,0000HMOV ES,AXMOV DI,INTR_IVADDMOV AX.IP_BAKMOV ES:[DI],AXMOV DI,2MOV AX,CS_BAKMOV ES:[DI],AXMOV DX,INTR_0CW1MOV AL,IM_BAKOUT DX,ALSTIMOV AX,4C00HINT 21HMYISR PROC NEARINC CXMOV AL,39HMOV AH,0EHINT 10H姓名院专业班年月日实验内容8259中断控制器实验指导老师MOV AL,20HINT 10HOVER:MOV DX,PCI_INTCSR ADD DX,2MOV AH,003FHOUT DX,AXMOV DX,INTR_0CW2MOV AL,20HOUT DX,ALMOV AL,20HOUT 20H,ALIRET MYISR ENDP CODE ENDSEND START【实验结果】实验1:每按一次KK1+按键,显示器上显示一个字符“9”;实验2:每按一次KK1+按键,显示器上显示一个字符“9”,6次后退出。