物理地址=段地址*16+偏移地址

为什么段地址要*16初学者,不要介意*16D或者10H
2024-12-27 19:33:22
推荐回答(3个)
回答1:

因为x86处理器地址总线是20位,最大管理1M内存,对应物理地址是00000H-fffffH

而内部数据总线、寄存器都是16位的,能表示的范围为0000H-ffffH

如何用16位寄存器表示20位?想到这样一种方式:
把两个16位寄存器相加得到20位,于是便有了

物理地址=段地址*16+偏移地址
相当于在16位地址后面加4个0,形成20位地址

具体过程如下:
段地址和偏移地址通过内部总线传入到地址加法器的部件;
地址加法器将两个16位地址合并为一个20位的物理地址;

回答2:

相当于左移四位,然后地址相加,得到一个二十位的地址,因为当时地址线20根,寄存器最高16位,要寻址1M的空间,必须用段地址和偏移地址结合的办法。

回答3:

是16位字段吗?