我了解到物理地址是通过将段地址(16位)左移4次并将其与16位偏移地址相加来计算的。 8086架构中的内存是1M。 我的问题是,如果段寄存器和偏移值都是FFFFH和FFFFH,那么结果将超过FFFFH,即超过1M。
haw实际上是在计算...... ??
答案 0 :(得分:1)
它进行模运算,丢弃任何进位。因此,对于FFFF的一段和FFFF的偏移,您计算FFFF0 + FFFF = 10FFEF,但它“丢弃”初始1,留下真正的0FFEF答案。
答案 1 :(得分:1)
8086地址总线只有20位宽,最大高地址为0xFFFFF = 1,048,575。它只是按照你的方式计算,但在内存提取中只使用了低位20位。