【发布时间】:2013-11-08 06:24:02
【问题描述】:
与 32 位处理器中的段描述符相比,我不太理解 8088 中用于物理地址计算的段偏移对之间的区别。
任何解释将不胜感激。
【问题讨论】:
标签: assembly x86 protected-mode real-mode memory-segmentation
与 32 位处理器中的段描述符相比,我不太理解 8088 中用于物理地址计算的段偏移对之间的区别。
任何解释将不胜感激。
【问题讨论】:
标签: assembly x86 protected-mode real-mode memory-segmentation
16 位 CPU 只能寻址 64kB 的内存。为了扩展内存范围,引入了段,基本上定义了 pchyscak 可用内存中 64KB 窗口的基地址。
要获得这样一个指针指向的 pyhscial 地址,您必须将段值乘以 10h (16) 并添加偏移地址。 IE。如果你有这样的地址
145A:67B1
145A0 (+10h or << 4)
+ 67B1
------
1AD51 <- Physical memory address
保护模式描述符类似于这样的段,但具有附加信息。 它的长度可达 1-64KB (x286),以及有关权限级别和存在的信息。权限级别用于使操作系统更加安全和独立于用户空间,存在标志用于虚拟内存。
在 386 上,范围已扩展,因此段现在可以达到 1MB,并且添加了粒度,因此段现在是 4096 块的倍数,从而将段大小扩展到 4GB。
描述符中的另一个属性是将一个段设置为16位或32位模式,这样16位代码仍然可以工作。
【讨论】: