64位x86-64处理器

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

  具有以下基本特点:

    1.向后兼容x86指令集

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

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

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

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

  1 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的原生模式

  2 基本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有相同的状态标志