在 8086 架构中,内存空间大小为 1 MiB,并划分为每个最大 64 KiB 的逻辑段。
即它有 20 地址线因此使用以下方法:
That the data segment register is shifted left 4 bits then added to the offset register
我的问题是:尽管所有寄存器都只有 16 位,但我们如何进行移位操作
最佳答案
地址转换由一个特殊单元在内部完成,而不使用用户代码可用的寄存器来存储中间结果——它只获取 16 位值并在内部进行转换——它不会在用户代码可以观察到的任何地方反射(reflect)出来。
关于x86-16 - 8086中物理地址是如何产生的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4203921/