微机原理与接口技术 实验报告(2)

2018-12-10 23:22

IN AL,0A1H ;读中断屏蔽寄存器,0A1H是该寄存器的端口 AND AL,0FBH ;开放中断IRQ10 OUT 0A1H,AL

MOV CX,10 ;记中断循环次数为10次 STI

WAIT: JMP WAIT

INT10: CLI PUSHAD PUSHFD

MOV CX,10 NEXT10_1:

MOV DX,31H

MOV AH,02H INT 21H

MOV DX,30H

MOV AH,02H INT 21H

MOV DX,20H MOV AH,02H INT 21H CALL DELAY1 LOOP NEXT10_1

MOV DX,0DH

MOV AH,02H INT 21H

MOV DX,0AH MOV AH,02H INT 21H

MOV AL,20H OUT 0A0H,AL OUT 20H,AL POPFD POPAD STI IRET

INT3: CLI ;中断服务程序 ;记中断循环次数为10次 ;输出DL ;输出DL ;发出EOI结束中断到PC内主片的地址20H ;输出DL,3 ;等待 ;输出DL,‘ ’ ;发出EOI结束中断到PC内从片占用的是0A0H端口 ;输出DL,发生中断后输出10 ;将中断屏蔽字送到中断屏蔽寄存器 ;从片 ;主片

;关中断,出栈,返回 ;中断服务程序

PUSHAD PUSHFD

MOV CX,10 ;记中断循环次数为10次 NEXT3_1: MOV DX,33H

MOV AH,02H ;输出DL INT 21H

MOV DX,20H ;发出EOI结束中断到PC内主片的地址20H MOV AH,02H INT 21H

CALL DELAY1 LOOP NEXT3_1

MOV DX,0DH

MOV AH,02H INT 21H

MOV DX,0AH MOV AH,02H INT 21H

MOV AL,20H

OUT 20H,AL OUT 0A0H,AL

POPFD POPAD STI IRET

DELAY1 PROC PUSHAD PUSHFD

MOV CX,0FH DELAY_LOOP1:

MOV BX,0FFFFH DELAY_LOOP2: DEC BX NOP

JNZ DELAY_LOOP2 LOOP DELAY_LOOP1 POPFD POPAD

;输出DL,3 ;等待 ;输出DL,‘ ’ ;发出EOI结束中断到PC内从片占用的是0A0H端口;发生中断输出DL,10 ;将中断屏蔽字送到中断屏蔽寄存器 ;出栈,关中断,返回 ;控制等待部分 RET

DELAY1 ENDP

CODE ENDS

END START

3.实验1-3:扩展多中断应用实验

调用程序源码文件8259-3.asm,在程序源代码中划横线的位置,请按照所学8259工作原理填写并验证,然后将所填内容写在实验报告中,并分析所填数据的形成原理。 屏幕截图:

程序代码及与案例说明:

;***************************************************************** ; 8259中断查询方式应用实验

;请根据所学原理推断横线处需填写的源代码

;*****************************************************************

I8259_1 EQU 2B0H ; 8259的ICW1端口地址 I8259_2 EQU 2B1H ; 8259的ICW2端口地址

I8259_3 EQU 2B1H ; 8259的ICW3端口地址,ICW3,ICW4,OCW1都写入奇地址中 I8259_4 EQU 2B1H ; 8259的ICW4端口地址 O8259_1 EQU 2B1H ; 8259的OCW1端口地址

O8259_2 EQU 2B0H ; 8259的OCW2端口地址,OCW2,OCW3写入偶地址 O8259_3 EQU 2B0H ; 8259的OCW3端口地址

DATA SEGMENT

MES1 DB 'YOU CAN PLAY A KEY ON THE KEYBOARD!',0DH, 0AH, 24H MES2 DD MES1

MESS1 DB 'HELLO! THIS IS INTERRUPT * 0 *!',0DH,0AH,'$' MESS2 DB 'HELLO! THIS IS INTERRUPT * 1 *!',0DH,0AH,'$' MESS3 DB 'HELLO! THIS IS INTERRUPT * 2 *!',0DH,0AH,'$' MESS4 DB 'HELLO! THIS IS INTERRUPT * 3 *!',0DH,0AH,'$' MESS5 DB 'HELLO! THIS IS INTERRUPT * 4 *!',0DH,0AH,'$' MESS6 DB 'HELLO! THIS IS INTERRUPT * 5 *!',0DH,0AH,'$' MESS7 DB 'HELLO! THIS IS INTERRUPT * 6 *!',0DH,0AH,'$' MESS8 DB 'HELLO! THIS IS INTERRUPT * 7 *!',0DH,0AH,'$' DATA ENDS

STACKS SEGMENT DB 100 DUP(?) STACKS ENDS

STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACKS, ES:DATA .386

START: MOV AX,DATA MOV DS, AX MOV ES, AX MOV AX, STACKS MOV SS, AX

MOV DX, I8259_1 ;初始化8259的ICW1

MOV AL, 13H ;边沿触发、单片8259、需要ICW4,查表得到控制字 OUT DX,AL

MOV DX,I8259_2 ;初始化8259的ICW2 MOV AL,0B0H OUT DX,AL MOV AL,03H OUT DX,AL

MOV DX, O8259_1 ;初始化8259的中断屏蔽操作命令字 MOV AL, 000H ;打开屏蔽位,将全部屏蔽位打开 OUT DX,AL

QUERY: MOV AH,1 ;判断是否有按键按下 INT 16H

JNZ QUIT ;有按键则退出

MOV DX,O8259_3 ;向8259发送查询命令 MOV AL,6CH ;01101100 OUT DX,AL

IN AL,DX ;读出查询字

TEST AL,80H ;判断中断是否已响应,响应后对应位置0 JZ QUERY AND AL,07H CMP AL,00H

JE IR0ISR CMP AL,01H

JE IR1ISR CMP AL,02H

JE IR2ISR CMP AL,03H

JE IR3ISR CMP AL,04H

JE IR4ISR CMP AL,05H

JE IR5ISR CMP AL,06H

JE IR6ISR CMP AL,07H

JE IR7ISR JMP QUERY IR0ISR: MOV AX,DATA MOV DS,AX

MOV DX,OFFSET MESS1 MOV AH,09 INT 21H JMP EOI IR1ISR: MOV AX,DATA MOV DS,AX

MOV DX,OFFSET MESS2 MOV AH,09 INT 21H JMP EOI IR2ISR: MOV AX,DATA MOV DS,AX

;没有响应则继续查询 ;若为IR0请求,跳到IR0处理程序 ;若为IR1请求,跳到IR1处理程序 ;若为IR2请求,跳到IR2处理程序 ;若为IR3请求,跳到IR3处理程序 ;若为IR4请求,跳到IR4处理程序 ;若为IR5请求,跳到IR5处理程序 ;若为IR6请求,跳到IR6处理程序 ;若为IR7请求,跳到IR7处理程序 ;显示提示信息 ;显示提示信息


微机原理与接口技术 实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:脱硫车间初步设计说明书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: