📄 4.asm
字号:
PORT_A EQU 208H
PORT_B EQU 209H
PORT_C EQU 20AH
PORT_CW EQU 20BH
TRUE EQU 0FFH
FALSE EQU 0
EXIT_KEY EQU 10000000B ; K8
DATA SEGMENT
DISP_BUF DB 0
DISP_FLAG DB 0
EXIT_FLAG DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,PORT_CW
MOV AL,89H
OUT DX,AL
NEXT:
CALL KEY_INPUT
CALL KEY_TEST
CALL DISP
CMP EXIT_FLAG,TRUE
JNZ NEXT
MOV AH,4CH
INT 21H
KEY_TEST:
MOV AL,0
MOV DX,PORT_A
OUT DX,AL
MOV DISP_FLAG,FALSE
MOV DX,PORT_C
IN AL,DX
TEST AL,7FH
JZ KEY_TEST_LP1
MOV DISP_FLAG,TRUE
KEY_TEST_LP1: TEST AL,80H
JZ KEY_TEST_EXIT
MOV EXIT_FLAG,TRUE
KEY_TEST_EXIT: RET
KEY_INPUT:
MOV AH,7
INT 21H
MOV DISP_BUF,AL
KEY_INPUT_RET: RET
DISP:
CMP DISP_FLAG,TRUE
JNZ DISP_RET
MOV AH,2
MOV DL,DISP_BUF
INT 21H
MOV AL,DISP_BUF
MOV DX,PORT_A
OUT DX,AL
DISP_RET: RET
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -