📄 key21.asm
字号:
.model small
.STACK 64H
.DATA
PORT_CR EQU 40a3H
PORT_A EQU 40a0h
PORT_B EQU 40a1h
PORT_C EQU 40a2h
DISP1 DB '0123456789ABCDEF'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AL,90H
MOV DX,PORT_CR
OUT DX,AL
REP1: MOV DX,PORT_B
MOV AL,01H
OUT DX,AL
MOV DX,PORT_A
IN AL,DX
AND AL,0Fh
CMP AL,00H
JNZ FIRST_ROW
MOV DX,PORT_B
MOV AL,02H
OUT DX,AL
MOV DX,PORT_A
IN AL,DX
AND AL,0Fh
CMP AL,00H
JNZ SECOND_ROW
MOV DX,PORT_B
MOV AL,04H
OUT DX,AL
MOV DX,PORT_A
IN AL,DX
AND AL,0FH
CMP AL,00H
JNZ THIRD_ROW
MOV DX,PORT_B
MOV AL,08H
OUT DX,AL
MOV DX,PORT_A
IN AL,DX
AND AL,0FH
CMP AL,00H
JNZ FOURTH_ROW
JMP REP1
FIRST_ROW:CALL DELAY
MOV SI,OFFSET DISP1
NEXT1:SHR AL,01H
JC DISPLAY
INC SI
JMP NEXT1
SECOND_ROW:CALL DELAY
MOV SI,OFFSET DISP1
ADD SI,04H
NEXT2:SHR AL,01H
JC DISPLAY
INC SI
JMP NEXT2
THIRD_ROW:CALL DELAY
MOV SI,OFFSET DISP1
ADD SI,08H
NEXT3:SHR AL,01H
JC DISPLAY
INC SI
JMP NEXT3
FOURTH_ROW:CALL DELAY
MOV SI,OFFSET DISP1
ADD SI,0CH
NEXT4:SHR AL,01H
JC DISPLAY
INC SI
JMP NEXT4
DISPLAY:MOV DL,[SI]
CMP DL,'F'
JE EXIT1
MOV AH,02H
INT 21H
JMP REP1
DELAY PROC NEAR
PUSH AX
PUSH CX
MOV CX,08000H
AGAIN3:MOV AX,0ffffH
AGAIN2:DEC AX
JNZ AGAIN2
LOOP AGAIN3
POP CX
POP AX
RET
DELAY ENDP
EXIT1:MOV AH,4CH
INT 21H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -