leaq is a variant of MOV. The first operand appears to be a memory address, but instead of reading from the designated location, the instruction copies the effective address to the designated location (a register).
Unary Operations
Instruction
Operands
Effect
Description
inc[bwlq]
D
D ← D + 1
Increment
dec[bwlq]
D
D ← D - 1
Decrement
Binary Operations
Instruction
Operands
Effect
Description
add[bwlq]
S, D
D ← D + S
Addition
sub[bwlq]
S, D
D ← D - S
Subtraction
imul[bwlq]
S, D
D ← D * S
Multiplication
Shift Operations
Instruction
Operands
Effect
Description
sal[bwlq]
k, D
D ← D << k
Left shift
shl[bwlq]
k, D
D ← D << k
Left shift
sar[bwlq]
k, D
D ← D >> k
Arithmetic right shift
shr[bwlq]
k, D
D ← D >>> k
Logical right shift
Bibliography
Bryant, Randal E., and David O’Hallaron. Computer Systems: A Programmer’s Perspective. Third edition, Global edition. Always Learning. Pearson, 2016.