8086中物理地址的计算

时间:2011-07-16 16:39:16

标签: computer-architecture

我了解到物理地址是通过将段地址(16位)左移4次并将其与16位偏移地址相加来计算的。 8086架构中的内存是1M。 我的问题是,如果段寄存器和偏移值都是FFFFH和FFFFH,那么结果将超过FFFFH,即超过1M。

FFFF0

+ FFFF

----------

10FFEF

haw实际上是在计算...... ??

2 个答案:

答案 0 :(得分:1)

它进行模运算,丢弃任何进位。因此,对于FFFF的一段和FFFF的偏移,您计算FFFF0 + FFFF = 10FFEF,但它“丢弃”初始1,留下真正的0FFEF答案。

答案 1 :(得分:1)

8086地址总线只有20位宽,最大高地址为0xFFFFF = 1,048,575。它只是按照你的方式计算,但在内存提取中只使用了低位20位。