80X86寄存器组
背景知识:
Intel CPU的发展史:
第一阶段:Intel CPU,是从最初的4位处理器4004发展到8位处理器8008,再到8位微处理器8080,以及之后的16位微处理器8086;
由8086开始,Intel 进入了 X86 时代;
第二阶段:(8086与8088的联系和区别)Intel 8086是16位CPU,而在8086之前都是8位CPU,也造成了很多外设也只支持8位,所以之后8088 CPU仍然延续了8位,但是在8088之后,Intel果断退出了8位CPU。(从汇编语言的角度来说,8086和8088基本上没有什么区别,8088可以看做是8086 8位版的)
第三阶段:在8088之后,Intel又推出了80186和80286,均是16位CPU
(8086与80186的联系和区别):
对于 80186 来说,其与 8086 的区别可以简单的看做是 80186 多了几条指令而已,
,CPU 的地址总线都是 20 根,即可最大寻址 2
20
即达到 1MB 的
寻址能力;
(8086、8088、80186与80286的联系和区别):对于 80286 来说,其地址总线数目达到了 24 根,从而最大寻址能力为 224 即 16MB,由于支持更多的物理内存寻址,因此 80286
便开始成为了多任务,多用户系统的核心。
第四阶段:Intel 又推出了 80386 ,80386 为 32 位微处理器,Intel 80x86 家族的 32 位微处理器始于 80386; 80386 的数据总线根数和地址总线根数均达到了 32 根,从而可以最大物理寻址为 232 即 4GB 。
第五阶段:之后的 80486 也是 32 位微处理器,而后又出来了 Pentium 和 Pentium Pro 等等第五代微处理器,这些处理器虽然也是 32 位微处理器,但是他们的数据总线和地址总
线都有所扩展,比如 Pentium 的数据总线达到 64 位,而 Pentium Pro 的地址总线位数达到了 36 位 。
寄存器分为2类:1.程序不可见的寄存器一般应用程序中不用而由系统所用的寄存器
2.程序可见的寄存器:在汇编语言中用到的寄存器
程序可见的寄存器又分为3类:1.通用寄存器
2.专用寄存器
3.段寄存器
通用寄存器:
80X86的程序可见寄存器组:
其中:
8位寄存器:
AL、AH:Accumulater,累加器
BL、BH:Base,基址
CL、CH:计数器
DL、DH:存放双字长数的高位字
16位寄存器:
AX:Accumulater,累加器
BX:Base,基址
CX:计数器
DX:存放双字长数的高位字
BP:Base Pointer,基址指针寄存器
SP:Stack Pointer,堆栈指针寄存器
DI:Destination Index,目的变址寄存器
SI:Source Index,源变址寄存器
32位寄存器:
EAX:Accumulater,累加器
EBX:Base,基址
ECX:计数器
EDX:存放双字长数的高位字
EBP:Base Pointer,基址指针寄存器
ESP:Stack Pointer,堆栈指针寄存器
EDI:Destination Index,目的变址寄存器
ESI:Source Index,源变址寄存器
专用寄存器:(略)
段寄存器:
段寄存器也是一种专用寄存器,他们专用于存储器寻址,用来直接或间接的存放段地址。段寄存器的长度为16位,在80286以前的处理器中,只有代码段(code segment)CS,数据段(data segment,DS),堆栈段(stack segment,SS)和附加段(extra segment,ES)4个寄存器。从80386开始,增加了FS和GS两个段寄存器,他们也属于附加的寄存器。