2017-06-02 21 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

相关问题