?? t8259-1.asm
字號:
;T8259-1.asm
;8259中斷查詢方式應用實驗
;****************根據查看端口資源修改下列符號值*******************
IOY0 EQU 9C00H ;片選IOY0對應的端口始地址
;*****************************************************************
MY8259_ICW1 EQU IOY0+00H ;實驗系統中8259的ICW1端口地址
MY8259_ICW2 EQU IOY0+04H ;實驗系統中8259的ICW2端口地址
MY8259_ICW3 EQU IOY0+04H ;實驗系統中8259的ICW3端口地址
MY8259_ICW4 EQU IOY0+04H ;實驗系統中8259的ICW4端口地址
MY8259_OCW1 EQU IOY0+04H ;實驗系統中8259的OCW1端口地址
MY8259_OCW2 EQU IOY0+00H ;實驗系統中8259的OCW2端口地址
MY8259_OCW3 EQU IOY0+00H ;實驗系統中8259的OCW3端口地址
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,MY8259_ICW1 ;初始化實驗系統中8259的ICW1
MOV AL,13H ;邊沿觸發、單片8259、需要ICW4
OUT DX,AL
MOV DX,MY8259_ICW2 ;初始化實驗系統中8259的ICW2
MOV AL,08H
OUT DX,AL
MOV DX,MY8259_ICW4 ;初始化實驗系統中8259的ICW4
MOV AL,01H ;非自動結束EOI
OUT DX,AL
MOV DX,MY8259_OCW1 ;初始化實驗系統中8259的OCW1
MOV AL,0FCH ;打開IR0和IR1的屏蔽位
OUT DX,AL
QUERY: MOV AH,1 ;判斷是否有按鍵按下
INT 16H
JNZ QUIT ;有按鍵則退出
MOV DX,MY8259_OCW3 ;向8259的OCW3發送查詢命令
MOV AL,0CH
OUT DX,AL
IN AL,DX ;讀出查詢字
TEST AL,80H ;判斷中斷是否已響應
JZ QUERY ;沒有響應則繼續查詢
AND AL,03H
CMP AL,00H
JE IR0ISR ;若為IR0請求,跳到IR0處理程序
JNE IR1ISR ;若為IR1請求,跳到IR1處理程序
JMP QUERY
IR0ISR:MOV AL,30H ;IR0處理,顯示字符0
MOV AH,0EH
INT 10H
MOV AL,20H
INT 10H
JMP EOI
IR1ISR:MOV AL,31H ;IR1處理,顯示字符1
MOV AH,0EH
INT 10H
MOV AL,20H
INT 10H
EOI: MOV DX,MY8259_OCW2 ;向實驗系統中8259發送中斷結束命令
MOV AL,20H
OUT DX,AL
JMP QUERY
QUIT: MOV AX,4C00H ;結束程序退出
INT 21H
CODE ENDS
END START
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -