lea dest, src
Used to store pointers to addresses in memory.
Moves the address of src into dest.
Can also be used to compute values quickly, as it abuses [] feature to allow for computations rather than x86 Variable Dereferencing.
Example (Address)
lea rax, [rip+0x20040]
- Will compute the address within the square brackets (Its not x86 Variable Dereferencing)
- rax will then be that address
- Equivalent to saying mov rax, rip+0x20040(but this instr is invalid)
Example (Computation)
lea rax, [rbx * 5 + 5]
- With rbxstoring a number instead of address
- leais used for computations rather than address arithmetic
- More efficient for compiler