Operand Types
- Immediate — a constant baked into the instruction.
- Register — value lives in a CPU register.
- Memory — value lives in RAM at a computed address.
mov rax, 42 ; immediate -> rax
mov rax, rbx ; register -> rax
mov rax, [rbx] ; memory: load value at address rbx
mov [rbx], rax ; memory: store rax to address rbx
Square brackets [ ] mean "the value at this address"
— like a pointer dereference in C.