语句控制实验
一、实验目的
1. 加强对8259a的理解。
2. 强化编程能力。
二、实验内容
设计一段语句控制程序,当开关k0闭合时出现欢迎语句 hello everybody,开关K1闭合时出现语句 my name is rainier,开关K2闭合时出现语句see you again,开关K3闭合时退出程序。
三、实验提示
1. 8259A IR0-IR3与开关K0-K3相连接;
2. 设置8259a控制字,初始化8259A写ICW1,上升沿触发,单片使用;写ICW2,中断号为80h-87h;写ICW4,一般完全嵌套,非缓冲,非自动结束方式。
四、参考程序
DATA SEGMENT
helloDB 'hello everybody $'
namDB 'my name is rainier $'
bye DB 'see you again $'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE
START:
CLI
MOV AX,DATA
MOV DS,AX
MOV DX,208H
MOV AL,1BH
MOV AL,13H
OUT DX,AL
MOV DX,209H
MOV AL,80H
OUT DX,AL
MOV AL,01H
OUT DX,AL
PUSH DS
MOV AX,0H
MOV DS,AX
MOV AX,OFFSET IRQ0
MOV SI, 200H
MOV [SI],AX
MOV AX,SEG IRQ0
ADD SI,02H
MOV [SI],AX
MOV AX,OFFSET IRQ1
ADD SI,02H
MOV [SI],AX
MOV AX,SEG IRQ1
ADD SI,02H
MOV [SI],AX
MOV AX,OFFSET IRQ2
ADD SI,02H
MOV [SI],AX
MOV AX,SEG IRQ2
ADD SI,02H
MOV [SI],AX
MOV AX,OFFSET IRQ3
ADD SI,02H
MOV [SI],AX
MOV AX,SEG IRQ3
ADD SI,02H
MOV [SI],AX
POP DS
MOV DX,209H
IN AL,DX
MOV AL,0H
OUT DX,AL
STI
LOOP1:
JMP LOOP1
IRQ0:
PUSH AX
PUSH BX
PUSH DX
PUSH CX
MOV AH,09H
MOV DX,OFFSET hello
INT 21H
STI
MOV DX,208H
MOV AL,20H
OUT DX,AL
POP CX
POP DX
POP BX
POP AX
IRET
IRQ1:
PUSH AX
PUSH BX
PUSH DX
PUSH CX
MOV AH,09H
MOV DX,OFFSET nam
INT 21H
STI
MOV DX,208H
MOV AL,20H
OUT DX,AL
POP CX
POP DX
POP BX
POP AX
IRET
IRQ2:
PUSH AX
PUSH BX
PUSH DX
PUSH CX
MOV AH,09H
MOV DX,OFFSET bye
INT 21H
STI
MOV DX,208H
MOV AL,20H
OUT DX,AL
POP CX
POP DX
POP BX
POP AX
IRET
IRQ3:
MOV AX,4C00H
INT 21H
IRET
CODE ENDS
END START
五、实验接线图