执行这些指令后esp的值是多少?

时间:2017-06-02 09:57:35

标签: reverse-engineering

如果esp寄存器在这个指令序列的开头有值0xbfffee34,执行这些指令后esp的值是多少?假设我们使用的是标准的32位x86 linux调用约定。

8049860: add $0x44, %esp

8049863: pop %ebx

8049864: pop %esi

8049865: pop %ebp

8049866: ret

1 个答案:

答案 0 :(得分:1)

每个pop指令将在x86上将esp递增4,并且ret指令将从堆栈中弹出调用者的eip,从而也会递增esp由4。

因此,在这些说明之后esp的值将是

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