《实验五中断应用实验.ppt》由会员分享,可在线阅读,更多相关《实验五中断应用实验.ppt(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、实验五实验五 中断应用实验中断应用实验PCI中断实验中断实验编写一实验程序,使用实验装置提供的编写一实验程序,使用实验装置提供的中断源,写成按键中断的响应。每产生中断源,写成按键中断的响应。每产生一次按键中断,向显示器输出字符一次按键中断,向显示器输出字符“7”INTCSR_BYTE0 EQU 9038HINTCSR_BYTE1 EQU 9039HINTCSR_BYTE2 EQU 903AHINTCSR_BYTE3 EQU 903BHIMB4_BYTE3 EQU 1FHDATA SEGMENTCSBAK DW?IPBAK DW?MKBAK DB?DATA ENDSCODE SEGMENT AS
2、SUME CS:CODE,DS:DATASTART:CLI MOV AX,DATA MOV DS,AX MOV DX,INTCSR_BYTE0;初始化初始化PCI板终端控制寄存器板终端控制寄存器 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV DX,INTCSR_BYTE3 MOV AL,00H OUT DX,AL MOV AX,0000H;保存和替换中断向量保存和替换中断向量 MOV ES,AX MOV DI,01C4H;INT
3、 71H,01C4H=71H*4 MOV AX,ES:DI MOV IPBAK,AX ;保存保存IP MOV AX,OFFSET MYINT;放入新的中断处理程序的放入新的中断处理程序的IP CLD STOSW MOV AX,ES:DI ;保存保存CS MOV CSBAK,AX MOV AX,SEG MYINT;放入新的中断处理程序的放入新的中断处理程序的CS STOSW IN AL,0A1H;取从片中断屏蔽寄存器取从片中断屏蔽寄存器IMR的内容的内容 MOV MKBAK,AL AND AL,00FDH;0FCh-11111101h OUT 0A1H,AL;允许从片允许从片8259第第2号中断
4、号中断 STIA1:NOP CALL BREAK JMP A1MYINT:PUSH DSPUSH AXPUSH DX MOV DX,IMB4_BYTE3;清清PCI中断标志中断标志 IN AL,DX MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV AL,61H;01100001 OUT 0A0H,AL;结束从片结束从片IRQ9对应的中断对应的中断 MOV AL,62H;01100010 OUT 20H,AL;结束主片结束主片IRQ2对应的中断对应的中断 MOV AH,0EH;显示字符显示字符7 MOV AL,37H INT 10H;BIOS功能调用功能
5、调用POP DXPOP AX POP DS IRETBREAK PROC NEAR PUSH DS MOV AH,06H;DOS功能调用功能调用 MOV DL,0FFH;DL=0FFH表示单个字符输入表示单个字符输入 INT 21H JE RETURN;若不退出,转若不退出,转RETURN POP DS;以下为退出时的程序段以下为退出时的程序段 CLI MOV AL,MKBAK OUT 0A1H,AL MOV AX,0000H;恢复原中断向量恢复原中断向量 MOV ES,AX MOV DI,01C4H;INT 71H,01C4H=71H*4 MOV AX,IPBAK CLD STOSW MOV AX,CSBAK STOSW STIMOV AX,4C00H;返回返回DOS INT 21HRETURN:POP DS RETBREAK ENDPCODE ENDS END START