汇编试验十四:访问CMOS RAM

时间:2023-03-09 05:02:15
汇编试验十四:访问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 码的方式存放。

试验效果:

汇编试验十四:访问CMOS RAM

Source Code:

assume cs:code

code segment
start: mov ax,0b800h
mov es,ax
mov di,*+*
mov al,0ah push di rdata: dec al
cmp al,
jb rtime
call show
add di,
jmp short rdata rtime: sub al,
cmp al,0feh
je sign
call show
add di,
jmp short rtime sign: pop di
add di,
mov byte ptr es:[di],'/' add di,
mov byte ptr es:[di],'/' add di,
mov byte ptr es:[di],':' add di,
mov byte ptr es:[di],':' mov ax,4c00h
int 21h show: push ax
push cx out 70h,al
in al,71h mov cx,
mov ah,al
shr ah,cl
and al,0fh add ah,30h
add al,30h mov es:[di],ah
mov es:[di+],al pop cx
pop ax
ret
code ends
end start