2010-03-31 45 views

回答

9

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

pop - Pop stack

pop指令將刪除從硬件支持堆棧的頂部到指定操作數的4字節數據元素(即,寄存器或內存位置)。它首先移動位於存儲器位置[SP]到指定的寄存器或存儲器位置的4個字節,然後通過4.

語法
彈出<reg32>
彈出<MEM>

遞增SP

示例
pop edi - 將堆棧的頂層元素彈出到EDI中。
pop [ebx] - 從位置EBX開始的四個字節處將堆棧的頂層元素彈出到內存中。

另一個很好的參考是http://en.wikibooks.org/wiki/X86_Assembly它可在PDF form

6

此參數設置目的地。

3

爲了擴展Andrey的回答,除了在彈出的元素上遞增堆棧指針外,彈出的元素還被複制到目標地址或寄存器。你給的指令或多或少相當於兩個指令(Intel語法)

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

我認爲這是在ATT(氣)語法

add $4, %esp 
mov %ss-4(%esp), %ebp 
相關問題