-
问题内容:CMOS RAM 读写的疑问?请大伙帮忙分析一下。
- 原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=4502784
- 所属论坛:汇编语言
审核组:其他开发语言
- 提问者:winbondowen
解决者:DelphiGuy
- 感谢:zara、DelphiGuy
- 关键字:其他开发语言 汇编语言
- 答案:
我在看80X86的汇编书时看到这样一段文字:
CMOS RAM有64个字节,其中0-E的字节访问方法是
out 70h,addr // addr:0--E
in al, 71h
其他字节的访问方法是
out 70h,addr+80H // addr:F--3F
in al, 71h
疑问:
我上次在看一些编程资料上是不区分0--3F地址的。读写方式是
int i;
unsigned char a;
for(i=0;i<64;i++)
{
outportb(0x70,i);
a=inportb(0x71);
}
这里没有考虑地址是多少,每次多是依次往下读。
这个东西怎么解释?
---------------------------------------------------------------
第一种的说法还真没遇到过, 都是如第二种方法似的依次往下读的. CMOS RAM 一般是有 128 字节的, 个别可能会有 256 字节.
---------------------------------------------------------------
最多128字节,因为地址的最高位是确定NMI(不可屏蔽中断)禁止/使能,访问CMOS RAM的有效地址只有7位。
---------------------------------------------------------------
00h-0Dh clock registers
0Eh diagnostics status byte
0Fh shutdown status byte
10h diskette drive type for A: and B:
11h reserved / IBM fixed disk / setup options
12h fixed disk drive type for drive 0 and drive 1
13h reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
14h equipment byte
15h LSB of system base memory in Kb
16h MSB of system base memory in Kb
17h LSB of total extended memory in Kb
18h MSB of total extended memory in Kb
19h drive C extension byte
1Ah drive D extension byte
1Bh-2Dh reserved
20h-27h commonly used for first user-configurable drive type
2Eh CMOS MSB checksum over 10-2D
2Fh CMOS LSB checksum over 10-2D
30h LSB of extended memory found above 1Mb at POST
31h MSB of extended memory found above 1Mb at POST
32h date century in BCD
33h information flags
34h-3Fh reserved
35h-3Ch commonly used for second user-configurable drive type
3Dh-3Eh word to 82335 MCR memory config register at [22] (Phoenix)
- 评价:
给朵鲜花(0)
扔个鸡蛋(0)