在64位模式下,虽然处理器目前只支持48位的地址,但在理论上,地址可大到64位。
从寄存器来看,与32位处理器最主要的区别如下:
●16个64位通用寄存器(在32位模式下只有8个通用寄存器)
●8个80位浮点寄存器
●1个64位状态标志寄存器, 称为R FLAGS(只使用了低32位)
●1个64位指令指针寄存器, 称为RIP
●8个64位MMX寄存器
●16个128位XMM寄存器(在32位模式下只有8个XMM寄存器)
通用寄存器
在描述32位处理器时介绍过通用寄存器,它们是作为算术运算、传送数据和循环遍历数据等指令的基本操作数。
通用寄存器可以访问8位、16位、32位或64位操作数(通过使用特殊前缀)。
在64位模式下,操作数的默认大小是32位,并且有8个通用寄存器。但是,通过给每条指令加上REX(寄存器扩展) 前缀, 操作数的长度可以达到64位, 并且还可以使用总共16个通用寄存器。可使用32位模式下的全部寄存器,再加上8个被编号的寄存器,即R8到R 15。
表2-1展示了在使用REX前缀的情况下可用的通用寄存器。
还有一些需要记住的细节:
在64位模式下,单条指令不能同时访问高字节寄存器(如AH、BH、CH和DH)和新字节寄存器的低字节(如DIL) 。
在64位模式下, 32位EFLAGS寄存器被64位R FLAGS寄存器所取代。这两个寄存器共享相同的低32位, 而RFLAGS的高32位是不使用的。
32位模式和64位模式的状态标志是相同的。
标签:汇编,通用寄存器,16,32,模式,64,寄存器 From: https://www.cnblogs.com/liming19680104/p/17803922.html