我知道它使用物理地址=段寄存器<< 4 +偏移寄存器。 虽然这两个寄存器是16位,8086如何处理20位加法操作?
答案 0 :(得分:5)
总线接口单元由段寄存器,加法器组成,用于生成20位地址和指令预取队列。一旦该地址从BIU发出,指令和数据字节就从存储器中取出,并填充先进先出6字节队列。
查看名为“8086_Internal_Block_diagram_enotes.pdf”的文档,很容易通过Google找到。另请参阅this document,有关总线接口单元的部分。
因此,如果您愿意,处理器会使用专用的内部20位寄存器“按需”生成这些20位地址。
答案 1 :(得分:1)
当您将16位数字向左移动4位时,您实际上是在创建一个20位数字。然后,偏移量表示您将进入该范围的距离。请参阅Wikipedia article on Real mode addressing。
示例:
0x0001 << 4 -> 0x00010 (5 sets of 4 bits in each hex digit -> 20 bits)