This is what LEA means: to load the effective address of what is a
memory operand. It doesn't mean load immediate.
mov rax, [LAB] ; loads the 8-byte value at LAB to rax
lea rax, [LAB] ; whatever address would have been used
; to load the contents at LAB, instead
; load that address to rax
LAB: dq 0
Of course, in this simple example, mov rax,LAB would also work (if
64-bit immediates are allowed). But an address can also be
[rbp+rsi*4+offset]. That's harder to represent without the square brackets:
lea rax, [rbp+rsi*4+offset]
--
Bartc