Consider:
popl %ebp
It seems the %ebp
is unnecessary, because the pop
operation of stack doesn't need a parameter.
Why does it make sense?
From x86 Assembly Guide:
pop — Pop stack
The pop instruction removes the 4-byte data element from the top of the hardware-supported stack into the specified operand (i.e. register or memory location). It first moves the 4 bytes located at memory location [SP] into the specified register or memory location, and then increments SP by 4.
Syntax
pop <reg32>
pop <mem>Examples
pop edi — pop the top element of the stack into EDI.
pop [ebx] — pop the top element of the stack into memory at the four bytes starting at location EBX.
Another good reference is x86 Assembly and it is available in PDF form.