所谓X86系列,是指Intel从16位微处理器8086开始的整个CPU芯片系列,系列中的每种型号都保持和以前的各种型号兼容,主要有8086、8088、80186、80286、80386、80486以及以后的Pentium芯片。
在X86系列中,8086和8088是16位处理器,而从80386开始为32位处理器,80286则是该系列从8088到80386,也就是从16位到32为过渡时的一个中间步骤。80286虽然仍然是16位处理器,但是在寻址方式开始了从“实地址模式”到“保护模式”的过渡。
我们说CPU是“16位”或“32位”,指的是处理器中“算术逻辑单元(ALU)”的宽度。系统总线中的数据线部分,称为“数据总线”,通常与ALU具有相同的宽度(但有例外)。那么“地址总线”的宽度呢?最自然的地址总线宽度是与数据总线一致。
但是,从8位CPU的寻址能力角度考虑,这是不现实的,因为一个8位CPU的地址只能用来访问256个不同的地址单元,这显然是不够的。所以,一般8位CPU的地址总线都是16位的。这也造成了8位CPU在内部结构上的不均匀。当CPU从8位发展到16位的时候,本来地址总线的宽度与数据总线一致了,但是当时觉得16位地址所决定的地址空间(64K)还是太小,还应该加大,Intel决定采用1M字节,也就是64K的16倍。
既然Intel决定了在其16位CPU,即8086中采用1M字节的内存地址空间,地址总线的宽度也就确定了,那就是20位,但是CPU中ALU的宽度只有16位,如何来填补这个空隙呢?
Intel设计了分段的方法,即在8086CPU中设置了四个“段寄存器”:CS、DS、SS、ES,分别用可执行代码即指令、数据、堆栈、和其他。每个寄存器都是16位的对应地址总线中的高16位。每条“访内”指令中的“内部地址