0
如果esp寄存器在此指令序列的开始处具有值0xbfffee34,那么执行这些指令后esp的值是多少?假设我们使用标准的32位x86 linux调用约定。这些指令执行后,esp的值是多少?
8049860: add $0x44, %esp
8049863: pop %ebx
8049864: pop %esi
8049865: pop %ebp
8049866: ret
如果esp寄存器在此指令序列的开始处具有值0xbfffee34,那么执行这些指令后esp的值是多少?假设我们使用标准的32位x86 linux调用约定。这些指令执行后,esp的值是多少?
8049860: add $0x44, %esp
8049863: pop %ebx
8049864: pop %esi
8049865: pop %ebp
8049866: ret
每个pop
指令将由4在x86增加esp
,而ret
指令会弹出来电者的eip
从堆栈,从而也增加esp
由4
所以esp
这些指令后的值将是
ESP = 0xbfffee34 + 0x44 + 0x4 + 0x4 + 0x4 + 0x4 = 0xbfffee88