编程:以“年/月/日 时:分:秒”的格式,显示当前的日期,时间。
注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元写入内容,否则将引起一些系统错误。
步骤1、定义数据段,用途:将从端口读出的数据转化为字符存储在数据段
代码段:
步骤1、定义数据,将要访问的内存单元编号存入(为防止重复性操作,思路类似于实验十三的英文诗)
2、从端口读出相应的数据(以BCD码的方式存放)
3、数据转化为ascii值存入数据段
4、调用BIOS、DOS中断例程显示字符(当然也可以自己编写函数实现)
注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元写入内容,否则将引起一些系统错误。
assume cs:code,ds:data
data segment
db '00/00/00/ 00:00:00','$'
data ends
code segment
index_cmostime:db 9,8,7,4,2,0;存储cmos ram中存放时间信息的单元编号。
index_datatime:db 0,3,6,10,13,16;data数据段中每个时间信息的偏移地址编号。
start:
mov ax,data
mov ds,ax
mov di,offset index_cmostime
mov bx,offset index_datatime
mov cx,6
s: push cx
mov al,cs:[di]
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov cl,cs:[bx]
mov ch,0
mov bp,cx
mov ds:[bp],ah
mov ds:[bp+1],al
inc di
inc bx
pop cx
loop s
mov ah,2 ;置光标
mov bh,0 ;第0页
mov dh,13 ;dh中放行号
mov dl,30 ;dl中放列号
int 10h
mov ax,data
mov ds,ax
mov dx,0 ;设置ds:dx指向字符串的首地址
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
思路:数据段:
步骤1、定义数据段,用途:将从端口读出的数据转化为字符存储在数据段
代码段:
步骤1、定义数据,将要访问的内存单元编号存入(为防止重复性操作,思路类似于实验十三的英文诗)
2、从端口读出相应的数据(以BCD码的方式存放)
3、数据转化为ascii值存入数据段
4、调用BIOS、DOS中断例程显示字符(当然也可以自己编写函数实现)