实验十四_访问CMOS RAM

来源:互联网 发布:淘宝情趣内衣评价大全 编辑:程序博客网 时间:2024/06/06 11:49
编程:以“年/月/日 时:分:秒”的格式,显示当前的日期,时间。
注意: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中断例程显示字符(当然也可以自己编写函数实现)
0 0
原创粉丝点击