马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
无言assume cs:code
data segment
db '2000/00/00 00:00:00','$'
db 2,5,8,11,14,17 ; 对应年、月、日、时、分、秒的偏移地址
db 9,8,7,4,2,0 ; 对应年、月、日、时、分、秒在CMOS RAM中的位置
data ends
code segment
start: mov ax,data
mov ds,ax
mov si,0 ; 定位字符串
mov di,20 ; 定位偏移地址
mov bp,26 ; 定位时间信息的位置
mov cx,6
l0: mov al,ds:[bp] ; 获取年份
call get_time
mov si,ds:[di]
and si,0FFH ; 数据是8位的,留下低8位
mov ds:[si],ah
mov ds:[si+1],al
inc di
inc bp
loop l0
mov ah,2 ; 置光标
mov bh,0 ; 第0页
mov dh,12 ; dh中放行号
mov dl,30 ; dl中放列号
int 10h
mov dx,0
mov ah,9 ; 在光标位置显示字符串
int 21h
mov ax,4c00h
int 21h
; 功能: 返回时间的十进制形式
; 参数: (al)=内存位置
; 返回: (ah)=数据的十位数
; (al)=数据的个位数
get_time:push cx
out 70h,al
in al,71h
mov ah,al ; al中从CMOS RAM的指定单元中读出的数据
mov cl,4
shr ah,cl ; ah中为数据的十位
and al,00001111b ; al中为数据的个位
add ah,30h ; 转换为十进制ASCII码
add al,30h ; 转换为十进制ASCII码
pop cx
ret
code ends
end start
|