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