When you are using both the MOV and LEA instructions in assembly, what does it really mean when someone writes:
mov DWORD PTR [esp+4], 0x80484c
lea eax,[ebp-40]
Specifically, when they write the information in the brackets []. I know that lea moves addresses and mov moves content, but when they are computing the addresses in lea or mov, how does that actually work? Is it the same as pointer arithmetic in C?