📄 systime.asm
字号:
;ALL RIGHTS RISERVE
;这是我个人的东西
DISPLAY MACRO VAL
MOV AH,09
LEA DX,VAL
INT 21H
ENDM
;————————————————
.MODEL SMALL
.STACK 64
;_____________________________
.DATA
da1 db 9 dup(0)
time db 01H,0,0,0,0,'Y',0,0,'M',0,0,'D',0,'W',0,0,'H',0,0,'M',0,0,'S',0,0,'MS','$'
;_____________________________
.CODE
MAIN PROC FAR
MOV AX,@DATA
MOV DS,AX
mov ah,2ah
int 21h
MOV WORD PTR DA1,CX ;将系统时间存储
MOV BYTE PTR DA1+2,DH
MOV BYTE PTR DA1+3,DL
MOV BYTE PTR DA1+4,AL
MOV AH,2CH
INT 21H
MOV BYTE PTR DA1+5,CH
MOV BYTE PTR DA1+6,CL
MOV BYTE PTR DA1+7,DH
MOV BYTE PTR DA1+8,DL ;————————————
lea si,time ;从后面往回做
ADD SI,25
LEA DI,DA1
ADD DI,8
MOV CL,[SI] ;用cl来设置标志
lop: CMP CL,'Y'
JE GO ;年需要特别处理
DEC SI ;跳过字符
XOR AX,AX
MOV AL,[DI] ;用循环来转换,每次转换成一位或两位数(一位数是星期)
JMP DO
GO: DEC SI
MOV AH,[DI]
MOV AL,[DI-1]
DO: CALL b2asc_con ;
DEC DI
MOV CL,[SI]
CMP CL,01H ;
JNE lop ;控制循环,odh是标志,不等于odh,继续
mov ax,0600h
mov bh,07
mov cx,0
mov dx,184fh
int 10h
mov ah,02
mov bh,0
mov dx,0c1ah
int 10h
DISPLAY TIME
mov ah,4ch
int 21h
main endp
;子程序,用来转换成ascii
b2asc_con proc
mov bx,10
back: sub dx,dx
div bx
or dl,30h
mov [si],dl
dec si
cmp ax,0
ja back
ret
b2asc_con endp
;_______________
end main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -