I am trying to learn more about the stack and base pointer. The following sample assembly code is from an objdump of a binary compiled by gcc on an IA32.
08048e0b <func_3>: 8048e0b: 55 push %ebp 8048e0c: 89 e5 mov %esp,%ebp 8048e0e: 83 ec 28 sub $0x28,%esp 8048e11: 8d 45 f0 lea -0x10(%ebp),%eax 8048e14: 89 44 24 0c mov %eax,0xc(%esp) 8048e18: 8d 45 f4 lea -0xc(%ebp),%eax 8048e1b: 89 44 24 08 mov %eax,0x8(%esp) 8048e1f: c7 44 24 04 65 9b 04 movl $0x8049b65,0x4(%esp) I know that the base pointer %ebp is used to reference the function parameters and local variables. Normally the positive offsets are parameters passed to the function and the negative offsets are local variables?
On the line 8048e18: 8d 45 f4 lea -0xc(%ebp),%eax What is -0xc(%ebp) referring to?
