CMOS RAM中包含实时时钟等64B的内容,内部时钟电路使用了前面14个字节,其余用来保存其他各处设备的配置信息。CMOS RAM的详细地址分配如下:
地址 说明
0 秒
1 秒报警
2 分
3 分报警
4 时
5 时报警
6 星期
7 日
8 月
9 年
A 状态寄存器A
B 状态寄存器B
C 状态寄存器C
D 状态寄存器D
E 诊断状态字节(0 正常)
F 停止状态字节(0 有市电)
10 软盘驱动器类型(位7-4:A驱,位3-0:B驱 1-360KB;2-1.2MB;6-1.44MB;7-720KB)
11 保留
12 硬盘驱动器类型(位7-4:C驱,位3-0:D驱)
13 保留
14 设备字节(软驱数目,显示器类型,协处理器)
15 基本存储器低字节
16 基本存储器高字节
17 扩展存储器低字节
18 扩展存储器高字节
19 硬盘类型字节(低于15为0)
1A—2D 保留
2E—2F CMOS校验和(10-2D各字节和)
30 扩充存储器低字节
31 扩充存储器高字节
32 日期世纪字节(19H:19世纪)
33 信息标志
34—3F 保留(34-0:没有密码;35-3F-密码位置)
对CMOS的访问:
CMOS有两个入口地址,地址口的端口地址为70H;数据口的端口地址为71H。所以只要将地址送到地址口,就可以从71H处读出所需数据。
读取CMOS的程序
在DEBUG中输入以下汇编语句即可
MOV BX,0
MOV AL,BL
OUT 70,AL
IN AL,71
MOV [BX+130],AL
INC BX
CMP BX,40
JNZ START;START 为开始语句MOV BX,0的地址
之后,就可以通过DEBUG的D命令查看相关信息。