一、CMOS内存信息详解
一般的PC/AT、286、386、486等微机均配有CMOS芯片,CMOS&127;芯片包含了一个实时钟
和64个字节的CMOS内存。在CMOS内存中,0-0DH为实时钟的有关信息,0E-&127;3FH包含
计算机的硬件配置信息,如常规内存的大小、扩展内存的大小、&127;软盘的类型、固定
盘的类型及其物理参数、显示器的类型等,这些参数与计算机能否正常工作具有密切的
关系,另外还有计算机的开机口令和其它辅助设置信息。表1列出了CMOS内存各字
节的用途。
偏移量 (十六进制) |
偏移量 (十进制) |
字段长度 (字节) |
功能描述
|
00h
|
0
|
1
| 用BCD描述的当前秒(00-59) |
01h
|
1
|
1
| 用BCD描述的报警时钟秒 |
02h
|
2
|
1
| 用BCD描述的报警当前分钟(00-59) |
03h
|
3
|
1
| 用BCD描述的报警时钟分钟 |
04h
|
4
|
1
| 用BCD描述的报警当前小时(00-23) |
05h
|
5
|
1
| 用BCD描述的报警时钟(以小时为单位) |
06h
|
6
|
1
| 用BCD描述的当前日期(星期几)(00-06) |
07h
|
7
|
1
| 用BCD描述的当前日期(日)(00-31) |
08h
|
8
|
1
| 用BCD描述的当前月(00-12) |
09h
|
9
|
1
| 用BCD描述的当前年(00-99) |
0Ah
|
10
|
1
| 状态注册码A |
0Bh
|
11
|
1
| 状态注册码B |
0Ch
|
12
|
1
| 状态注册码C |
0Dh
|
13
|
1
| 状态注册码D |
0Eh
|
14
|
1
| 诊断状态 |
0Fh
|
15
|
1
| 系统关闭代码 |
10h
|
16
|
1
| 软盘驱动器类型 |
11h
|
17
|
1
| 高级BIOS设置选项 |
12h
|
18
|
1
| 硬盘O/I类型(0-15) |
13h
|
19
|
1
| 键盘输人速率与延迟 |
14h
|
20
|
1
| 安装设备 |
15h
|
21
|
1
| 从低位字节计数的基本内存,以1K计数 |
16h
|
22
|
1
| 从高位字节计数的基本内存,以1K计数 |
17h
|
23
|
1
| 从低位字节计数的扩展内存,以1K计数 |
18h
|
24
|
1
| 从高位字节计数的扩展内存,以1K计数 |
19h
|
25
|
1
| 硬盘扩展类型0(0-255) |
1Ah
|
26
|
1
| 硬盘扩展类型1(0-255) |
1Bh
|
27
|
8
| 硬盘0的用户定义类型信息 |
24h
|
36
|
8
| 硬盘1的用户定义类型信息 |
2Dh
|
45
|
1
| 高级BIOS设置选项 |
2Eh
|
46
|
1
| 高位字节CMOS校验和 |
2Fh
|
47
|
1
| 低位字节CMOS校验和 |
30h
|
48
|
1
| 从低位字节计数的POST报告扩展内存 |
31h
|
49
|
1
| 从高位字节计数的POST报告扩展内存 |
32h
|
50
|
1
| BCD码公元数(00-90) |
33h
|
51
|
1
| 通电自检信息标志 |
34h
|
52
|
2
| 高级BIOS设置选项 |
36h
|
54
|
1
| 指定芯片组的BIOS设置选项 |
37h
|
55
|
7
| 加电口令(通常加密) |
3Eh
|
62
|
1
| 从高位字节计数的扩展CMOS校验和 |
3Fh
|
63
|
1
| 从低位字节计数的扩展CMOS校验和 |
二、读写CMOS内存的方法
CMOS内存的地址口和数据口的口地址分别为70H和71H。在对CMOS内存进行写操作时,首先
将要写入的CMOS内存的地址送到口地址70H,&127;再将要写入的数据送口地址71H。在对
CMOS内存进行读操作时,首先将要读出的CMOS内存的地址送到口地址70H,再从口地址71H
读出数据到AL寄存器。
三、Linux下的c程序如下