您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 东南大学信息学院微机实验报告十
实验十一、实验目的1.了解Intel8086CPU的中断处理功能以及IBM-PC的中断结构。2.了解8259中断控制器的使用。3.掌握键盘中断的编程,观察中断的执行情况。二、实验任务要求每按下一个键就向CPU发出中断请求信号,该信号由8259的IRQ1引入,中断类型号为09,CPU响应中断后转入执行KEYINT中断服务程序,并且在CRT上显示某字或某个图形,按下10次后返回DOS。三、源程序STACKSEGMENTSTACKDW200HDUP(?)STACKENDSDATASEGMENTKEYDB?BUFDBOK!DATAENDSCODESEGMENTASSUMECS:CODE,SS:STACK,DS:DATADELAYPROCPUSHCXPUSHDXMOVDX,0A64DHCON2:MOVCX,0FFFFHCON:DECCXJNECONDECDXJNECON2POPDXPOPCXRETDELAYENDPDISP1PROCFARPUSHAXPUSHBXPUSHCXPUSHDXMOVAH,15;读当前显示状态INT10HMOVAH,0;设置显示方式INT10HMOVCX,1;要显示字符个数MOVDX,0;行号为0,列号为0REPT:MOVAH,2;设置光标位INT10HMOVAL,0FH;读出太阳图形MOVAH,10;写字符INT10HCALLDELAYSUBAL,ALMOVAH,10;清除原图形INT10HINCDHADDDL,2CMPKEY,10JAEGO1CMPDH,25JNEREPTGO1:POPDXPOPCXPOPBXPOPAXRETDISP1ENDPDISP2PROCFARPUSHCXPUSHBXPUSHAXMOVCX,3NEXTC:LODSB;AL-[SI]MOVAH,0EH;写字符,并移动光标MOVBX,01INT10HCALLDELAYLOOPNEXTCCMPKEY,10JAEGO2POPAXPOPBXPOPCXRETDISP2ENDPKEYINTPROCFARPUSHAXPUSHSISTIINAL,60HMOVAH,ALINAL,61HORAL,80HOUT61H,ALANDAL,7FHOUT61H,ALTESTAH,80HJNEGOSTIINCKEYMOVSI,OFFSETBUFCALLDISP2GO:MOVAL,20HOUT20H,ALPOPSIPOPAXIRETKEYINTENDPSTART:MOVAX,STACKMOVSS,AXMOVAX,DATAMOVDS,AXMOVAX,0MOVES,AXMOVAX,ES:[24H]PUSHAXMOVAX,ES:[26H]PUSHAXCLIMOVAX,OFFSETKEYINTMOVES:[24H],AXMOVAX,SEGKEYINTMOVES:[26H],AXSTIMOVKEY,0AGAIN:CALLDISP1CMPKEY,10JBAGAINCLIGO2:POPAXMOVES:[26H],AXPOPAXMOVES:[24H],AXSTIMOVAH,4CHINT21HCODEENDSENDSTART四、实验中遇到的问题在实验编写过程中,遇到按住键,会一直显示OK,出现10次OK后也不会跳出程序。解决方法:在显示OK函数中添加了判断,在不高于10次时才显示OK。五、思考题键盘上某个按键按下和释放时都会向8259发出中断请求,要求只在键按下时显示‘OK!’,键释放时不显示,则中断服务程序KEYINT应该如何修改?答:在我们编写的程序中按一次键即显示一个‘OK!’,不存在键盘释放时也会显示‘OK!’,故中断服务程序KEYINT不用修改。
本文标题:东南大学信息学院微机实验报告十
链接地址:https://www.777doc.com/doc-5275174 .html