实验目的:
掌握 8259A的结构、工作原理、工作方式、初始化及应用编程;掌握微机系统中断程序的设计。
实验要求:
利用系统定时源设计 1CH 中断程序,要求每隔一定时间在系统机屏幕上显示一行字符串(字符串内容自定)。
.586
DATA SEGMENT USE16
MSG DB 'HELLO',0DH,0AH,'$'
OLD1C DD ?
ICOUNT DB 18
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG:
MOV AX,DATA
MOV DS,AX
CLI
CALL READ1C
CALL WRITE1C
STI
;------键入字符则中断-------
SCAN:
MOV AH,01H
INT 16H
JZ SCAN
CALL RESET
MOV AH,4CH
INT 21H
SERVICE PROC
PUSHA
PUSH DS
MOV AX,DATA
MOV DS,AX
DEC ICOUNT
JNZ EXIT
MOV ICOUNT,18
MOV DX,OFFSET MSG
MOV AH,09H
INT 21H
EXIT:
POP DS
POPA
IRET
SERVICE ENDP
READ1C PROC
MOV AX,351CH
INT 21H
MOV WORD PTR OLD1C,BX
MOV WORD PTR OLD1C+2,ES
RET
READ1C ENDP
WRITE1C PROC
PUSH DS
MOV AX,CODE
MOV DS,AX
MOV DX,OFFSET SERVICE
MOV AX,251CH
INT 21H
POP DS
RET
WRITE1C ENDP
RESET PROC
MOV DX,WORD PTR OLD1C
MOV DS,WORD PTR OLD1C+2
MOV AX,251CH
INT 21H
RET
RESET ENDP
CODE ENDS
END BEG