回 帖 发 新 帖 刷新版面

主题:物理地址=16*段地址+偏移地址????

物理地址=16*段地址+偏移地址????
   请问假如:
   ds =2000
   si =2000
   结果怎么会是20000+2000=22000h
   这是怎么回事与16的关系是怎么样啊!!!
   高手指教!!

回复列表 (共13个回复)

11 楼

物理地址:存储器的绝对地址,从00000到FFFFFH,是CPU访问存储器的实际寻址地址,它由逻辑地址变换而来.
因为段基地址指的是起始地址,它必须是每小段的首地址,其低4位一定是0,所以在实际工作时,是从段寄存器中取出段基址,将其左移4位,再与16位偏移地址相加,就得到了物理地址,此地址在CPU的总线决口部件BIU饿地址加法器中形成

12 楼

标题只适用于 real mode 下的 物理地址转换。 ptr mode 下,在没有设置
cr0 开启 分页 模式时物理地址转换是根据 selector ,DESC TABLE 从
GDT/LDT 中获得 线形地址 此时的 线形地址 = 物理地址。 如果在 ptr mode
下设置了 cr0 的 PG 位,开启了 分页 模式,还需要利用 PDE/PTE 页目录,页
表将 线形地址 转换成 物理地址。 当然以上所说的都是 x86 IA32 的 CPU。

13 楼

还是没弄懂,偏移地址是怎么确定的?
现在的32位、64位pc是不是不用偏移地址了?

我来回复

您尚未登录,请登录后再回复。点此登录或注册