为什么这些内存无法使用?

问题描述 投票:0回答:1

内存布局 有一次面试官问我为什么上面的128MB在32位环境下不能使用,为什么这个数字不是256MB。

当时无法回答,后来上网查资料也没有找到满意的解释。

c++ assembly operating-system
1个回答
0
投票

在典型的32位计算环境中,最大可寻址内存为4GB(从0x00000000到0xFFFFFFFF)。此限制是由于 32 位地址寄存器只能保存 2^32 个不同的值,相当于 4GB。然而,并非所有这些内存都可供程序使用;有些保留用于其他用途,例如系统硬件资源。

顶部 128MB(或者有时是 256MB 或更多)通常保留用于内存映射 I/O、内核和/或 Bios ROM 内容。

© www.soinside.com 2019 - 2024. All rights reserved.