东南大学信息学院微机实验报告十

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验十一、实验目的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不用修改。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功