资源描述:
《北科大微机原理实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一:8259中断控制器应用实验实验名称PC机内中断应用实验成绩班级通信姓名学号实验目的:1.学习可编程中断控制器8259的工作原理;2.掌握可编程中断控制器8259的应用控制方法;实验内容:PC机中断实验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示屏幕上显示一行预设定的字符串。实验步骤:实验结果及分析:DATASEGMENTMESSDB'TPCAinterrupt!',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,CSMOVDS,AXMOVDX,OFFSETINT3;采用间接修改法
2、,调用DOS功能,设置中断向量,取得偏移地址MOVAX,SEGINT3;通过AX的过渡,得到段首地址。MOVDS,AXMOVAL,0BH;设置IRQ3对应的中断向量0BHMOVAH,25HINT21HINAL,21H;读中断屏蔽寄存器,21H是该寄存器的端口号ANDAL,0F7H;开放IRQ3中断,允许IRQ3的中断申请,11110111OUT21H,AL;输出到中断屏蔽寄存器MOVCX,10;记中断循环次数为10次STI;允许中断发生WAIT:JMPWAITINT3:MOVAX,DATA;中断服务程序MOVDS,AXMOVDX,OFFSETMESSMOVAH,09H;在
3、屏幕上显示每次中断的提示信息INT21HMOVAL,20H;发出EOI结束中断到PC内主片的地址20HOUT20H,ALLOOPNEXT;当CX为0,跳转到NEXTINAL,21H;读中断屏蔽寄存器,获取中断屏蔽字ORAL,04H;关闭IRQ3中断,00000100OUT21H,AL;将中断屏蔽字送到中断屏蔽寄存器STI;置中断标志位MOVAH,4CH;返回DOSINT21HNEXT:IRET;中断返回CODEENDSENDSTART收获体会:使用间接法设置中断向量:1.将中断处理程序的段首地址送入DS寄存器,偏移量送入DX寄存器。2.将需要修改的中断向量类型号送入AL.
4、3.25号功能送AH。4.执行INT21H指令。实验名称PC机内中断嵌套实验成绩班级姓名学号实验目的:1.学习可编程中断控制器8259的工作原理;2.掌握可编程中断控制器8259的应用控制方法;实验内容:PC机内中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌套的过程。实验步骤:实验结果及分析:CODESEGMENTASSUMECS:CODESTART:.386;伪指令CLIMOVAX,CSMOVDS,AXMOVDX,OFFSETINT10;设置IRQ10对应的中断向量MOVAX,SEGINT10;以AX为过渡,取得段首地址MOVDS,AX
5、MOVAL,72H;IRQ10的中断向量地址为72HMOVAH,25HINT21HMOVDX,OFFSETINT3;设置IRQ3对应的中断向量MOVAX,SEGINT3;以AX为过渡,取得段首地址MOVDS,AXMOVAL,0BH;IRQ3的中断向量地址为0BHMOVAH,25HINT21HINAL,21H;读入中断控制寄存器ANDAL,0F7H;开放IRQ3中和IRQ2中断请求,11110111OUT21H,AL;输出到中断控制寄存器INAL,0A1HANDAL,0FBH;开放IRQ10中断请求11111011OUT0A1H,ALMOVCX,10;设置计数器STIWAI
6、T:JMPWAIT;跳转,等待中断请求信号INT10:CLI;将处理器标志寄存器的中断标志位清0,当前不允许中断PUSHAD;将所有的32位通用寄存器压入堆栈PUSHFD;然后将32位标志寄存器EFLAGS压入堆栈MOVCX,10NEXT10_1:;在*号之间填写代码,在屏幕上显示"10"和"空格"的字符;****************************************MOVDL,'1';在屏幕显示字符1MOVAH,2INT21HMOVDL,'0';在屏幕显示字符0MOVAH,2INT21HMOVDL,20H;在屏幕显示空格字符MOVAH,2INT21H;
7、******************************************CALLDELAY1;调用延时子程序LOOPNEXT10_1MOVDX,0DH;调用DOS的中断功能,回车MOVAH,02HINT21HMOVDX,0AH;调用DOS的中断功能,换行MOVAH,02HINT21HMOVAL,20HOUT0A0H,ALOUT20H,ALPOPFDPOPADSTIIRETINT3:CLIPUSHADPUSHFDMOVCX,10NEXT3_1:;在*号之间填写代码,在屏幕显示"3"和"空格"的字符;*********