assume cs:code
stack segment
db 1024 dup(0)
stack ends
code segment
start:
mov ax, stack
mov ss, ax
mov sp, 1024
mov ax, 0b800h
mov es, ax
mov bx, 5 * 160
mov byte ptr es:[bx + 0], '2'
mov byte ptr es:[bx + 2], '0'
mov al, 9 ; 年
out 70h, al
in al, 71h
mov ah, al
mov cl, 4
shr al, cl
add al, 30h
mov byte ptr es:[bx + 4], al
mov al, ah
and al, 0fh
add al, 30h
mov byte ptr es:[bx + 6], al
mov byte ptr es:[bx + 8], '/'
mov al, 8 ; 月
out 70h, al
in al, 71h
mov ah, al
mov cl, 4
shr al, cl
add al, 30h
mov byte ptr es:[bx + 10], al
mov al, ah
and al, 0fh
add al, 30h
mov byte ptr es:[bx + 12], al
mov byte ptr es:[bx + 14], '/'
mov al, 7 ; 日
out 70h, al
in al, 71h
mov ah, al
mov cl, 4
shr al, cl
add al, 30h
mov byte ptr es:[bx + 16], al
mov al, ah
and al, 0fh
add al, 30h
mov byte ptr es:[bx + 18], al
mov byte ptr es:[bx + 20], ' '
mov al, 4 ; 时
out 70h, al
in al, 71h
mov ah, al
mov cl, 4
shr al, cl
add al, 30h
mov byte ptr es:[bx + 22], al
mov al, ah
and al, 0fh
add al, 30h
mov byte ptr es:[bx + 24], al
mov byte ptr es:[bx + 26], ':'
mov al, 2 ; 分
out 70h, al
in al, 71h
mov ah, al
mov cl, 4
shr al, cl
add al, 30h
mov byte ptr es:[bx + 28], al
mov al, ah
and al, 0fh
add al, 30h
mov byte ptr es:[bx + 30], al
mov byte ptr es:[bx + 32], ':'
mov al, 0 ; 秒
out 70h, al
in al, 71h
mov ah, al
mov cl, 4
shr al, cl
add al, 30h
mov byte ptr es:[bx + 34], al
mov al, ah
and al, 0fh
add al, 30h
mov byte ptr es:[bx + 36], al
mov ax, 4c00h
int 21h
code ends
end start