针对所有使用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位 | 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 |
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 细节处理
-
单条指令不能同时访问寄存器的高字节和低字节
-
在64位模式下,32位的EFLAGS寄存由64位的RFLAGS寄存器取代。但是共享低32位。
-
-