[英]Segment Offset Pair bs Segment Descripter
对于8088中用于物理地址计算的段偏移对与32位处理器中的段描述符之间的区别,我一点都不感到困惑。
任何解释将不胜感激。
16位CPU只能寻址64kB的内存。 为了扩展内存范围,引入了一些段,这些段基本上定义了pchyscak可用内存中64KB窗口的基本地址。
要获取指针所指向的pyhscial地址,您必须将段值乘以10h(16),然后加上偏移量地址。 即。 如果你有这样的地址
145A:67B1
145A0 (+10h or << 4)
+ 67B1
------
1AD51 <- Physical memory address
保护模式描述符类似于这种段,但是具有附加信息。 它的长度可以达到1-64KB(x286),并包含有关产品级别和状态的信息。 特权级别用于使OS更加安全和独立于用户空间,状态标志用于虚拟内存。
在386上,扩展了范围,因此段现在可以达到1MB,并添加了粒度,因此段现在是4096块的倍数,从而将段大小扩展到了4GB。
描述符中的另一个属性是将段设置为16或32位模式,以便16代码仍然可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.