算数与逻辑操作指令

指令 效果 全称 描述
leaq S,D D←&S load effective address quadword 加载有效地址
INC D D←D+1 increase 加1
DEC D D←D-1 decrease 减1
NEG D D←-D negative 取负
NOT D D←~D not 取补
ADD S,D D←D+S add
SUB S,D D←D-S substract
IMUL S,D D←D*S signed multiplication 有符号乘
MUL S,D D←D*S multiplication 无符号乘
XOR S,D D←D^S exclusive or 异或
OR S,D D←D|S or
AND S,D D←D&S and
SAL k,D D←D«k shift arithmatic left 左移
SHL k,D D←D«k shift left 左移
SAR k,D D←D»k shift arithmatic right 算术右移
SHR k,D D←D»>k shift right 右移

大写指令后添加指令后缀指定操作的数据类型。

右移需要处理符号位所以区分右移与算术右移,左移不需要所以SAL与SHL的操作是一样的。

特殊的算数操作

指令 效果 全称 描述
imulq S R[%rdx]:R[%rax]←S*R[%rax] signed multiplication quadword 有符号全乘法
mulq S R[%rdx]:R[%rax]←S*R[%rax] multiplication quadword 无符号全乘法
cqto R[%rdx]:R[%rax]←符号扩展(R[%rax]) convert quadword to octoword 转换为八字
idivq S R[%rdx]←R[%rdx]:R[%rax] mod S
R[%rax]←R[%rdx]:R[%rax] ÷ S
signed divide 有符号除法
divq S R[%rdx]←R[%rdx]:R[%rax] mod S
R[%rax]←R[%rdx]:R[%rax] ÷ S
divide 无符号除法

IMAKIBA

Welcom to my blog!