实验14
代码很长。。。加了一个死循环, 一直显示当前时间assume cs:code
code segment
start:
s0:
mov cx, 2 ;死循环, 实时显示时间
push cx
mov bl, '/'
mov si, 160 * 12 + 40 * 2 - 2
mov cx, 3
mov dl, 9
;显示年月日
s:
mov al, dl
call read
add si, 2
call show_2
mov ah, bl
add si, 4
call show_1
dec dl
loop s
;空格
mov bl, ' '
mov ah, bl
call show_1
mov bl, ':'
mov cx, 3
mov dl, 4
;显示时间
s1:
mov al, dl
call read
add si, 2
call show_2
mov ah, bl
add si, 4
call show_1
sub dl, 2
loop s1
;空格覆盖掉最后一个:
mov bl, ' '
mov ah, bl
call show_1
pop cx
loop s0
mov ax, 4c00H
int 21H
read:
;读取CMOS RAM中的数据
push cx
out 70h, al
in al, 71h
mov ah, al
mov cl, 4
shr ah, cl
and al, 00001111b
pop cx
ret
show_2:
;显示数字数据ah, al
push es
push bx
mov bx, 0b800H
mov es, bx
add ah, 30h
mov byte ptr es:, ah
add al, 30h
mov byte ptr es:, al
pop bx
pop es
ret
show_1:
;显示数据ah
push es
push bx
mov bx, 0b800H
mov es, bx
mov byte ptr es:, ah
pop bx
pop es
ret
code ends
end start
页:
[1]