64位x86-64处理器

针对所有使用x86-64指令集的64位处理器的基本架构细节。包括Intel64和AMD64处理器。

具有以下基本特点:

1.向后兼容x86指令集

2.地址长度为64位,虚拟地址空间为2的64字节

3.可以使用64位通用寄存器

4.比x86-32多了8个通用寄存器

5.物理地址为48位,支持高达256TB的RAM

64位操作模式

intel64架构引入了IA-32e新模式,这个模式可以分为两个模式:兼容模式(compatibility mode)和64位模式(64-bit mode)。

兼容模式(compatibility mode):

在这个模式下16和32位应用程序不用重新进行编译就可以运行。16位windows(win16)和DOS应用程序不能运行在win64位下。

64位模式(64-bit mode):

处理器执行的是64位线性地址空间的应用程序。这个模式是64位Microsoftt Windows的原生模式

基本64位执行环境

64位模式和32位的主要区别:

比32位多8个通用寄存器,有16个通用寄存器

有8个浮点寄存器

1个64位状态标志寄存器RFLAGS(只采用低32位),32位的称为EFLAGS

1个64位指令指针寄存器RIP,32位的称为EIP

8个64位MMX寄存器

16个128位XMM寄存器(32位模式只有8个XMM寄存器)

    2.1 通用寄存器

64位的通用寄存器可以访问8位,16位,32位和64位数据。

操作位

可用寄存器

64位

RAX,RBX,RCX,RDX,RDI,RSI,RBP,RSP,R8,R9,R10,R11,R12,R13,R14,R15

32位

EAX,EBX,ECX,EDX,EDI,ESI,EBP,ESP,R8D,R9D,R10D,R11D,R12D,R13D,R14D,R15D

16位

AX,BX,CX,DX,DI,SI,BP,SP,R8W,R9W,R10W,R11W,R12W,R13W,R14W,R15W

8位

AL,BL,CL,DL,DIL,SIL,BPL,SPL,R8L,R9L......还有后缀把L改为R

 

     

    2.2 细节处理

64位模式和32位的主要区别:

比32位多8个通用寄存器,有16个通用寄存器

有8个浮点寄存器

1个64位状态标志寄存器RFLAGS(只采用低32位),32位的称为EFLAGS

1个64位指令指针寄存器RIP,32位的称为EIP

8个64位MMX寄存器

16个128位XMM寄存器(32位模式只有8个XMM寄存器)

  2.1 通用寄存器

64位的通用寄存器可以访问8位,16位,32位和64位数据。

  2.2 细节处理

  1. 单条指令不能同时访问寄存器的高字节和低字节
  2. 在64位模式下,32位的EFLAGS寄存由64位的RFLAGS寄存器取代。但是共享低32位。
  3. 32位和64有相同的状态标志