在8086中,地址总线是20位的,而寄存器是16位的,如何使用寄存器才能定位内存地址?显示一个寄存器是不够了,两个16位寄存器如何能得出一个20位的地址,所以其中不一个寄存器需要扩充到20位,就是段地址了,那为何不两个都扩充成20位呢,那样相加后寻址时地址就不连续了。正因为如此,8086的每个段寻址空间最大只能是64KB,这个大小就是偏移地址从0000h~ffffh的活动范围。
这只是我的推理,可能事实上在作硬件的时候,就已经商量好了要这么搞,如果有人知道其中的奥秘请告诉我:)
在8086中,地址总线是20位的,而寄存器是16位的,如何使用寄存器才能定位内存地址?显示一个寄存器是不够了,两个16位寄存器如何能得出一个20位的地址,所以其中不一个寄存器需要扩充到20位,就是段地址了,那为何不两个都扩充成20位呢,那样相加后寻址时地址就不连续了。正因为如此,8086的每个段寻址空间最大只能是64KB,这个大小就是偏移地址从0000h~ffffh的活动范围。
这只是我的推理,可能事实上在作硬件的时候,就已经商量好了要这么搞,如果有人知道其中的奥秘请告诉我:)