我知道它使用物理地址 = 段寄存器 << 4 + 偏移寄存器。虽然这两个寄存器是16位的,但8086如何处理20位以上的操作?
我知道它使用物理地址 = 段寄存器 << 4 + 偏移寄存器。虽然这两个寄存器是16位的,但8086如何处理20位以上的操作?
当您将一个16位数字向左移动4个位置时,实际上是创建了一个20位数字。然后偏移量指示您将进入该范围的距离。请参见维基百科关于实模式寻址的文章。
例如:
0x0001 << 4 -> 0x00010 (5 sets of 4 bits in each hex digit -> 20 bits)