赞
踩
x86 cpu的寻址方式在历史早期主要是分片寻址(segmentation),其基本设计是任何地址由base 和 offset组成,通过将地址空间按不同规则切分成多块,每块起始地址作为base,在每个区块的偏移作为offset即可定位到具体物理地址,分片寻址在x86历史主要有两种
[0, 1Mb]
, 32bit protect mode是从里程碑式的80386 cpu开始使用的,将寻址范围扩展到整个32位空间即[0, 4Gb]
.在现代的操作系统和处理器中已经基本不再使用分片寻址方式,仅作为历史适配,更为广泛使用的是分页寻址(paging), 分页寻址将地址区分为虚拟地址和物理地址,通过页表将两者映射,这样对于编程语言而言只需要关注虚拟地址即可,因为这种情况下虚拟地址空间是完全平坦统一的,因此又被称为flat addr space(平坦地址空间).
实模式寻址(real mode)非常简单,其形式为cs:ip
,其中cs
为分片寄存器(segment register),x86一共有6个分片寄存器,这里暂时只需要关注cs
知道其为代码段的分片寄存器即可。cs
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。