实模式地址空间内容在保护模式中的定位问题(含MBR切换场景)
实模式地址空间在保护模式中的位置
首先要明确:x86保护模式的地址映射核心是段式映射+可选的分页映射,刚从实模式切换到保护模式时,默认不启用分页,此时线性地址直接等于物理地址。
- 实模式下的
0x00000~0xFFFFF(整个1MB)地址空间,在未启用分页的保护模式中,对应的物理地址范围完全不变——也就是仍然位于物理内存的0x00000到0xFFFFF区间。 - 被BIOS加载到
0x07C00的MBR代码,自然也保留在物理地址0x07C00处。只要在保护模式中设置的段描述符基地址为0,通过段+偏移的方式访问时,偏移0x07C00就会对应线性地址0x07C00,直接指向MBR的物理位置。
如果后续启用了分页,实际位置就取决于配置的页表映射规则——但刚切换保护模式时一般不会立刻开启分页,所以默认状态下实模式地址空间和保护模式物理地址完全对应。
内容的提问来源于stack exchange,提问作者Melab
相关产品推荐
相关产品推荐

