I'll try to improve this guide over time. The goal is to collect the essential knowledge about x86-64 assembly and examples of very common patterns (if, while, for, procedure calls) in BombLab.
The registers
We have plenty of registers inside the CPU; they can store 8 bytes each and they are called:
%rax, %rbx, %rcx, %rdx (the "a, b, c, d")
%rsi, %rdi (source index, destination index)
%rsp, %rbp (stack pointer, base pointer)
%r8, %r9, .., %r15 (just numbers here)