以”年/月/日 时:分:秒”的格式,显示当前的日期、时间”
这里需要注意的是CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元之外,不要向其他的单元写入内容,否则的话就会引起一些系统错误
assume cs:code,ds:data
data segment
db "YY/MM/DD HH:MM:SS" ;模板格式
db 9,8,7,4,2,0 ;存放时间的单元位置
data ends
code segment
start:
mov ax,data
mov ds,ax
mov cx,6
mov si,0;这里就是让YY/那些改变显示
mov di,17;这里就是想直接到data段当中的9,8,7那边了
s:
push cx
mov al,[di]
out 70h,al
in al,71h;在CMOS获取到相应数据的BCD码
mov ah,al
mov cl,4
shr ah,cl ;右移4位
and al,00001111b
add al,30h
add ah,30h
mov [si],ah
mov [si+1],al
add si,3
add di,1
pop cx
loop s
mov ax,data ;设置data的数据
mov ds,ax
mov si,0;
mov cx,17 ;设置存放的17个字符就包括年月日时分秒
mov ax,0b800h
mov es,ax
mov di,160*13+32*2 ;设置存放的位置
s1:
mov al,[si]
mov es:[di],al ;存放字符数据
mov al,02h ;存放的是字符属性
mov es:[di+1],al
inc si
add di,2 ;加的就是字符加上字符属性
loop s1
mov ax,4c00h
int 21h
code ends
end start
执行结果如下所示