《东南大学信息学院微机实验报告十(共4页).docx》由会员分享,可在线阅读,更多相关《东南大学信息学院微机实验报告十(共4页).docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验十一、实验目的1.了解Intel 8086CPU的中断处理功能以及IBM-PC的中断结构。2.了解8259中断控制器的使用。3.掌握键盘中断的编程,观察中断的执行情况。二、实验任务要求每按下一个键就向CPU发出中断请求信号,该信号由8259的IRQ1引入,中断类型号为09,CPU响应中断后转入执行KEYINT中断服务程序,并且在CRT上显示某字或某个图形,按下10次后返回DOS。三、源程序STACKSEGMENT STACKDW 200H DUP(?)STACK ENDSDATA SEGMENTKEY DB ?BUF DB OK!DATA ENDSCODE SEG
2、MENTASSUME CS:CODE, SS:STACK, DS:DATADELAY PROCPUSH CXPUSH DXMOV DX,0A64DHCON2:MOV CX,0FFFFHCON:DEC CXJNE CONDEC DXJNE CON2POP DXPOP CXRETDELAY ENDPDISP1PROC FARPUSH AXPUSH BXPUSH CXPUSH DXMOV AH, 15;读当前显示状态INT 10HMOV AH, 0;设置显示方式INT 10HMOV CX, 1;要显示字符个数MOV DX, 0;行号为0,列号为0REPT:MOV AH, 2;设置光标位INT 10H
3、MOV AL, 0FH;读出太阳图形MOV AH, 10;写字符INT 10HCALL DELAYSUB AL, ALMOV AH, 10;清除原图形INT 10HINC DHADD DL, 2CMP KEY, 10JAE GO1CMP DH, 25JNE REPTGO1:POP DXPOP CXPOP BXPOP AXRETDISP1 ENDPDISP2 PROC FARPUSH CXPUSH BXPUSH AXMOV CX, 3NEXTC:LODSB;AL-SIMOV AH, 0EH;写字符,并移动光标MOV BX, 01INT 10HCALL DELAYLOOP NEXTCCMP KEY
4、, 10JAE GO2POP AXPOP BXPOP CXRETDISP2 ENDPKEYINTPROC FARPUSH AXPUSH SISTIIN AL, 60HMOV AH, ALIN AL, 61HOR AL, 80HOUT 61H, ALAND AL, 7FHOUT 61H,ALTEST AH, 80HJNE GOSTI INC KEYMOV SI, OFFSET BUFCALL DISP2GO:MOV AL, 20HOUT 20H, ALPOP SIPOP AXIRETKEYINT ENDPSTART:MOV AX, STACKMOV SS, AXMOV AX, DATAMOV D
5、S, AXMOV AX, 0MOV ES, AXMOV AX, ES:24HPUSH AXMOV AX, ES:26HPUSH AXCLIMOV AX, OFFSET KEYINTMOV ES:24H,AXMOV AX, SEG KEYINTMOV ES:26H, AXSTIMOV KEY, 0AGAIN: CALL DISP1CMP KEY, 10JB AGAINCLIGO2:POP AXMOV ES:26H,AXPOP AXMOV ES:24H,AXSTIMOV AH, 4CHINT 21HCODEENDSEND START四、实验中遇到的问题在实验编写过程中,遇到按住键,会一直显示OK,出现10次OK后也不会跳出程序。解决方法:在显示OK函数中添加了判断,在不高于10次时才显示OK。五、思考题键盘上某个按键按下和释放时都会向8259发出中断请求,要求只在键按下时显示OK!,键释放时不显示,则中断服务程序KEYINT应该如何修改?答:在我们编写的程序中按一次键即显示一个OK!,不存在键盘释放时也会显示OK!,故中断服务程序KEYINT不用修改。专心-专注-专业