📄 2.asm
字号:
STACK SEGMENT STACK
DW 200 DUP (?)
STACK ENDS
data segment
y dw 1205h
STR DB 0DH,0AH, 'PLEASE INPUT TIME(t) OR QUIT(q): $'
data ends
code segment
begin proc far
assume cs:code,ds:data,es:data
mov ax,data
mov ds,ax
mov es,ax
LEA DX,STR ;显示提示信息
MOV AH,9
INT 21H
MOV AH,1 ;从键盘输入单个字符
INT 21H
CMP AL,74H ;AL='t'?
JNE B
CALL s ;显示系统时间
B: CMP AL,71H ;AL='q'?
JNE begin
MOV AH,4CH ;返回dos状态
INT 21H
mov dh,16
mov dl,10
push dx
MOV DI,OFFSET Y
S: mov bh,07h
mov ch,0
mov cl,0
mov dh,24
mov dl,80
mov al,0
mov ah,7
int 10h
pop dx
mov ah,2
mov bh,0
add dh,13
add dl,33
int 10h
cmp dH,24
ja x
CMP DL,64
JA X
push dx
mov ah,2ch
int 21h
call n
mov dl,3ah
mov ah,2
int 21h
mov ch,cl
call n
mov dl,3ah
mov ah,2
int 21h
mov ch,dh
call n
mov bx,900h
REPEA: MOV CX,0ffffH ;延时
REPEAT:LOOP REPEAT
dec bx
JNZ REPEA
mov ah,0bh
int 21h
inc al
jnz s
mov ah,1
int 21h
cmp al,'q'
je e
jmp s
G: mov ah,1
int 21h
cmp al,'q'
je e
jmp s
x: mov ah,0bh
int 21h
inc al
jZ G
MOV DX,[DI]
INC DI
inc di
PUSH DX
JMP S
e: mov ah,4ch
int 21h
begin endp
n proc
push ax
push bx
;push dx
mov bl,10
mov al,ch
mov ah,0
div bl
mov bh,ah
mov dl,al
add dl,30h
mov ah,2
int 21h
mov dl,bh
add dl,30h
mov ah,2
int 21h
pop ax
pop bx
;pop dx
ret
n endp
code ends
end begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -