X64 处理器架构 X64 架构是一个向后兼容的扩展的x 86
提供了和x 86 相同的32 位模式和一个新的64 位模式
术语“x 64”包括AMD 64 和Intel64,他们的指令集基本是相同的
寄存器(Registers) X64 将x 86 的8 个通用寄存器扩展为64 位,并且增加8 个新的64 位寄存器
64 位寄存器命名以“r”开始,例如:eax 扩展为64 位就是rax ,8 个新的64 位寄存器命名为r8 到r15
每个寄存器的低32 位,16 位,8 位可以作为操作数直接寻址,这包括向esi这样的寄存器,以前他的低8 位不可以直接寻址
下表说明了64 位寄存器的地位部分在汇编语言中的命名
64-bit register Lower 32 bits Lower 16 bits Lower 8 bits rax eax ax al rbx ebx bx bl rcx ecx cx cl rdx edx dx dl rsi esi si sil rdi edi di dil rbp ebp bp bpl rsp esp sp spl r8 r8d r8w r8b r9 r9d r9w r9b r10 r10d r10w r10b r11 r11d r11w r11b r12 r12d r12w r12b r13 r13d r13w r13b r14 r14d r14w r14b r15 r15d r15w r15b 对一个32 位寄存器操作会自动用零扩展填充整个64 位寄存器
对8 位和16 位寄存器的操作不会零扩展填充高位(这是和x 86 兼容的)
ax ,bx ,cx 和dx 的高8 位ah,bh,ch,dh仍就是可以寻址的,但是不能用在所有类型的操作数
指令指针寄存器eip 和flags 也被扩展到64 位(分别为 rip 和rflags)