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