我正在阅读Richard Blum的专业汇编语言,当您输入呼叫时,您应该将寄存器的值复制到,他还提供了以下模板:ESP
EBP
function_label:
pushl %ebp
movl %esp, %ebp
< normal function code goes here>
movl %ebp, %esp
popl %ebp
ret
我不明白为什么这是必要的。当你在函数中 push 一些东西时,你显然打算把它弹回来,从而恢复ESP
到它的原始值。
那么为什么要有这个模板呢?
无论如何,寄存器有什么用EBP
?
我显然错过了一些东西,但它是什么?