2017-06-02 48 views
0

如果esp寄存器在此指令序列的開始處具有值0xbfffee34,那麼執行這些指令後esp的值是多少?假設我們使用標準的32位x86 linux調用約定。這些指令執行後,esp的值是多少?

8049860: add $0x44, %esp 

8049863: pop %ebx 

8049864: pop %esi 

8049865: pop %ebp 

8049866: ret 

回答

1

每個pop指令將由4在x86增加esp,而ret指令會彈出來電者的eip從堆棧,從而也增加esp由4

所以esp這些指令後的值將是

ESP = 0xbfffee34 + 0x44 + 0x4 + 0x4 + 0x4 + 0x4 = 0xbfffee88