Here are some commonly used addressing modes:
%rax == $r[0] # similarly for other registers
%eax == least significant 32 bits of %rax
(presence may signal a 32-bit operation)
disp(base, index, scale) == $m[base + index * scale + disp]
disp(base) == $m[base + disp]
label(,index,scale) == $m[label + index * scale]
symbol(%rip) == relative reference to symbol in memory
Opcode suffixes are used to indicate the size of a memory operation. They are:
byte b 8 bits word w 16 bits long, double l,d 32 bits quadword q 64 bits