一共可分为四组指令:加载有效地址、一元操作、二元操作、移位。
每个指令根据操作数的大小,又有bwlq四种后缀的变种。
3.5.1 加载有效地址
1.leaq是movq的变形,从内存读数据到寄存器,但是它根本就没有引用内存(不懂什么意思)。
2.此外,它还可以建单的描述算术操作,例如leaq 7(%rdx, %rdx, 4), %rax将把rax的值设置为5x+7.
3.5.2 一元和二元操作
1.一元操作的操作数可以是寄存器或内存位置。二元操作的第一个操作数可以是立即数、寄存器或内存位置,第二个操作数是寄存器或内存为止,同时既是源又是目的。
3.5.3 移位操作
1.移位操作的移位量可以是一个立即数或存放在单字节寄存器%cl中,目的操作数可以是寄存器或内存位置。
3.5.4 讨论
3.5.5 特殊的算术操作
1、x86-64对16字节运算提供有限的支持,Intel把16字节称为八字。