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