-
问题内容:在实模式下能访问多大的内存?
- 原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=4446366
- 所属论坛:汇编语言
审核组:其他开发语言
- 提问者:MoFanYingXiong
解决者:cys1
- 感谢:rockefeller8、Civet148
- 关键字:其他开发语言 汇编语言
- 答案:
世人盛传,在实模式下只能访问1M的内存空间,我想来想去,怎么也想不明白。
在实模式下能够访问的最大内存地址是FFFF:FFFF,其对应的物理地址是:
FFFF * 16 + FFFF + 1
=FFFF0 + FFFF + 1
=FFFF0 + 10000
=10FFF0
=1087K 零 1008个字节
=1M 零 63K 零 1008个字节
也就是说,在实模式下,能访问1M多的内存空间,为什么说只能访问1M的空间呢?是不是还有其它的限制?
另外一个问题是:
我听说0000:0000是中断向量表的地址,B800:0000是显存的地址,FFFF:0000是BIOS启动的地址。
请问在实模式中,还有哪些像这样的特殊地址?
---------------------------------------------------------------
你的计算没有问题,
但8086的地址线是20根,所以其有1024*1024个值,用FFFF:FFFF的表示形式超出了其取值范围,
关于地址的问题知道的和你一样多,期待高手
---------------------------------------------------------------
VGA,B800:0000是显存的地址;如果是单显,地址是B000:0000
---------------------------------------------------------------
当实模式下访问到大于1M的内存地址后
会回滚到以0开始的偏移地址~~!
- 评价:
给朵鲜花(4)
扔个鸡蛋(8)