实验十四_访问CMOS RAM
2014-04-26 19:11 星星之火✨🔥 阅读(319) 评论(0) 编辑 收藏 举报编程:以“年/月/日 时:分:秒”的格式,显示当前的日期,时间。
注意: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中断例程显示字符(当然也可以自己编写函数实现)