The LEA
instruction loads the address that will be evaluated with the particular addressing mode into the destination register. Consider these two cases:
lea -0x18(%ebp), %ebx
mov -0x18(%ebp), %ebx
The first instruction loads the address calculated as offset -0x18 relative the current value of ebp into ebx.
The second instruction loads the memory content at this address into ebx.
The negative offset means that location is below the address in a register and positive offset means that the location is above the address in a register. It is common to represent a memory with the zero address at bottom and the addresses grow toward the top in the drawings:
0xFFFFFFFC !_______!
....
+0x4(ebp) -> !_______!
(ebp) -> !_______!
-0x4(ebp) -> !_______!
....
0x00000000 !_______!