如何在启动后计算内核可用的最低和最高可能的mem地址?

时间:2014-10-23 21:46:18

标签: memory assembly kernel ram

在实模式启动后,我想弄清楚最低和最高 可以使用的内存地址。我想我需要找出答案 安装在机器上然后计算的ram的实际大小 地址应该很简单(但只是为了好玩,我该怎么做:))。 然后我可以使用这些地址 我的gdt的基础和限制对吗?这样加载gdt后, 进入保护模式,并设置我的细分。我有所有的记忆 可以玩。

1 个答案:

答案 0 :(得分:1)

按照定义,实模式不能解决所有内存问题。您必须首先切换到保护模式,使用安全的GDT限制,扫描内存,然后相应地调整描述符限制。

至于检测内存,只需尝试从增加的物理地址读取,直到异常为止。为此指定一个选择器,在循环中重置描述符,然后继续。