关于函数返回地址与EBP的关系总结
当前EBP地址的值是上一个函数(就是调用当前函数的函数)的基址指针,这个值(一个地址)的值就是上一个函数刚开始调用时EBP所持有的值
当前EBP地址的下一个地址(也就是EBP+4,根据环境不同而不同,还可能是EBP+8)的值,就是当前函数的返回地址
当前EBP地址的值(也就是上一个函数的基址指针)的下一个地址的值就是上一个函数的返回地址
每次进入函数,首先压入的就是该函数的返回地址,然后生成栈帧,压入上个函数的基址指针(也就是上个函数的EBP的地址)
总结:
每个函数内部栈底EBP地址的值是上个函数的EBP地址,
每个函数内部栈底EBP+4地址的值就是该函数的返回地址

对自己所学的总结,也希望对大家有所帮助。
博客总结了函数返回地址与EBP的关系。当前EBP地址的值是上一函数基址指针,其下一个地址值是当前函数返回地址。每次进入函数,先压入返回地址,再生成栈帧并压入上个函数基址指针。每个函数内部栈底EBP地址值是上个函数EBP地址,EBP+4地址值是该函数返回地址。
1993

被折叠的 条评论
为什么被折叠?



