tags:

views:

138

answers:

3
popl   %ebp

It seems the %ebp is unnecessary because the pop operation of stack doesn't need a parameter.

Why does it make sense?

+4  A: 

this parameter sets destination.

Andrey
+2  A: 

To expand on Andrey's answer, in addition to incrementing the stack pointer over the popped element, the popped element is also copied to a destination address or register. The instruction you gave is more or less equivalent to the two instructions (intel syntax)

add esp,4
mov [ss:esp-4],ebp

which I think is this in att (gas) syntax

add $4, %esp
mov %ss-4(%esp), %ebp
Geoff Reedy
+3  A: 

From http://www.cs.virginia.edu/~evans/cs216/guides/x86.html

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 http://en.wikibooks.org/wiki/X86_Assembly and it is available in PDF form.

jschmier