实模式下,cpu真的只能寻址1M的地址空间吗?

本文探讨了X86架构下实模式与保护模式的区别,特别是在内存访问方面的不同。实模式下通过修改段界限也能访问超过1MB的内存空间,而保护模式则提供了更灵活的内存管理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

问题:对于X86:实模式下,打开A20地址线,难道也不能寻址4G的地址空间吗?是不是只有进入保护模式,打开A20地址线才能寻址4G的地址空间呢?

对于其他CPU:对于目前其他类型的CPU,比如POWER   PC,ARM这些CPU可能已经没有A20地址线问题了,当他们在实模式下,可以摆脱1M地址空间的限制吗?

 

回答:

 实模式下也是可以访问1M以上的内存空间的。在CPU内部有个段描述符高速缓寄存器,寄存器内容分为三个部分:段基址(32bit),段界限(32bit),段属性(读,写,执行,存在等)。在实模式下:段基址   =   Seg   *   16,   段界限   =   OFFFFh,   在保护模式下:   段基址   =   描述符基址,     段界限   =描述符界限。但无论在实模式下还是在保护模式下:最后得到的物理地址是一致的为:段基址   +   段偏移。   如果你想在实模式下防问1M以上的空间,那么你必须修改高速缓寄存器中段界限,但是在实模式下此值又不能修改,所以你必须先跳到保护模式下修改此值,然后再跳会实模式。只要你把段界限值修改到足够大,你就能访问相应的内存了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值