利用1CH中断,每隔一定时间间隔,在屏幕上打印一行自定义的字符串(例如自己的学号B14040411),按下键盘任意键后程序自动退出。
.486
DATA SEGMENT USE16
MESG DB 'B14040411',0DH,0AH,'$'
OLD0A DD ?
ICOUNT DB 18
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
CLI
CALL READ0A
CALL WRITE0A
STI
SCAN: MOV AH,1
INT 16H ;BIOS 键盘输入功能调用 ,01H号查询键盘缓冲区。
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 AH,9
LEA DX,MESG
INT 21H
EXIT: POP DS ;恢复现场
POPA
IRET
SERVICE ENDP
READ0A PROC
MOV AX,351CH
INT 21H
MOV WORD PTR OLD0A,BX
MOV WORD PTR OLD0A+2,ES
RET
READ0A ENDP
WRITE0A PROC
PUSH DS
MOV AX,CODE
MOV DS,AX
MOV DX,OFFSET SERVICE
MOV AX,251CH
INT 21H
POP DS
RET
WRITE0A ENDP
RESET PROC
MOV DX,WORD PTR OLD0A
MOV DS,WORD PTR OLD0A+2
MOV AX,251CH
INT 21H
RET
RESET ENDP
CODE ENDS
END BEG