无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2867|回复: 2
打印 上一主题 下一主题

内存大小的问题

[复制链接]
跳转到指定楼层
1#
发表于 2014-2-20 10:06:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
G4D0.46a2014.0116 .

内存大小的问题
read 0x8298
返回的内存大小问题。
在一台8G内存的机器上
返回0x7Fx00
中间x忘了,好像是C。
这样 只有 511M

怎么得到内存实际大小?
2#
 楼主| 发表于 2014-2-20 10:11:17 | 只看该作者
哦!  还有个  0x82C0
回去试试。
回复

使用道具 举报

3#
发表于 2014-2-20 11:23:51 | 只看该作者
在0x8298处的4字节整数,表示的是从 1M 开始的连续内存量,以 KB 为单位。

注意,BIOS 把内存搞成碎片,是不连续的。这里的内存量,只是从 1M 开始的最大连续内存块的大小。这个大小不可能超过 4G,因为在 4G 以内一定存在 ROM 空间(通常应该位于 4G 的顶部),这些会破坏连续性。在最理想的情况下,一个良好的 BIOS 可能会把扩展内存分为三部分,一部分是从 1M 开始的连续内存,接下来的第二部分就是 ROM 空间和其他各种不让用户使用的空间,直到 4G 这个界线处,而 4G 以上就是第三部分。然而,BIOS 一般都不会安排好内存的布局,有的甚至还故意制造内存碎块。所以,这个最理想的情况是难以达到的。然而在 4G 以上,通常是连续内存,因为很难有一个合理的理由去在 4G 以上制造不连续内存。不连续的内存主要是在 4G 以内才有的。

如果你有 4G 的 RAM,那么,通常有一部分 RAM 会被 BIOS 安排在 4G 以上的地址处,大约 700M 左右。具体究竟有多少内存被安排在 4G 以上,也是不确定的,不同的 BIOS,其处理方法也是不同的。

在 0x82C0 处,用 8 个字节来表示一个整数,它就是从 4G 开始的最大连续内存块的大小,单位也是 KB。

所以,如果你有 4G 的 RAM,那么在 0x82C0 处的值就是大于 0 的,即,它不会是 0。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 13:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表