📄 display.asm
字号:
;*********
;display.asm by zhangyu
;*********
DATA SEGMENT
STR1 DB 2,8,14,17,24,36,44,55,75 ;the speed levels
STR2 DB 'sorry!only the number of 0 tp 9 is available!','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV SI,0
REPLAY:
MOV DL,2fH
ADD DL,1
POINTER:
MOV AH,02H
INT 21H
MOV BL,STR1[SI]
CALL DELAYED
INC DL
CMP DL,39H
JA REPLAY
JMP POINTER
E_OUT:
MOV AH,4CH
INT 21H
DELAYED PROC NEAR
PUSH DX
DE_GOON:
MOV AH,0CH ;clear the keyboard buffer
INT 21H
MOV CX,5000h ;the delayed time
DEL_LOOP:
MOV AH,01H
INT 16H
JNZ NOSTRING
LOOP DEL_LOOP
DEC BX
JNZ DE_GOON
POP DX
RET
DELAYED ENDP
NOSTRING:
CMP AL,0DH
JZ E_OUT
SUB AL,30H
CMP AL,09 ;if the number if beyond 9
JA warning;then show the warning message
CBW ;extend 8 to 16 bit
MOV SI,AX
MOV DX,SI
ADD DL,30H
MOV AH,02H
INT 21H
JMP POINTER
warning:
call one
LEA DX,STR2
MOV AH,09H
INT 21H
call one
jMP START
ONE PROC NEAR
PUSH DX
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
POP DX
RET
ONE ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -