//目录

汇编试验十四:访问CMOS RAM

CMOS RAM 芯片的特征:

  • 包含一个时钟和一个有128个存储单元的RAM存储器。
  • 该芯片靠电池供电。所以,关机后其内部的时钟仍可正常工作,RAM中的信息不丢失。
  • 128个字节的RAM中,内部时钟占用 0~0dh  单元来保存时间信息,其余大部分单元用于保存系统配置信息,供系统启动时BIOS程序读取。
  • 该芯片内部有两个端口,端口地址为 70h 和 71h 。CPU 通过这两个端口来读写CMOS RAM。
  • 70h 为地址端口存放要访问的 CMOS RAM 单元的地址; 71h  为数据端口,存放从选定的 CMOS RAM 单元中读取的数据,或要写入到其中的数据。
  • 在CMOS RAM 中,存放着当前的时间:年、月、日、时、分、秒。这6个信息的长度都为1个字节,存放单元:且这些数据以 BCD 码的方式存放。

试验效果:

 

Source Code:

 

assume cs:code

code segment
start:    mov ax,0b800h
        mov es,ax
        mov di,160*12+30*2
        mov al,0ah

        push di

rdata:    dec al
        cmp al,7
        jb rtime
        call show
        add di,6
        jmp short rdata

rtime:    sub al,2
        cmp al,0feh
        je    sign
        call show
        add di,6
        jmp short rtime

sign:    pop di
        add di,4
        mov byte ptr es:[di],'/'

        add di,6
        mov byte ptr es:[di],'/'

        add di,12
        mov byte ptr es:[di],':'

        add di,6
        mov byte ptr es:[di],':'

        mov ax,4c00h
        int 21h


show:    push ax
        push cx

        out 70h,al
        in al,71h

        mov cx,4
        mov ah,al
        shr ah,cl
        and al,0fh

        add ah,30h
        add al,30h

        mov es:[di],ah
        mov es:[di+2],al

        pop cx
        pop ax
        ret
code ends
end start
View Code

 

posted @ 2017-06-21 12:12  小草的大树梦  阅读(1041)  评论(0编辑  收藏  举报