mov ebp,esp pop ebp执行后,esp还在原地吗?esp如果和ebp不相邻的话不就不对了吗
时间: 2024-05-25 15:12:43 浏览: 72
esp和ebp跟踪记录
在执行 "mov ebp, esp" 指令时,将 esp 中的值复制到 ebp 中,因此此时 ebp 和 esp 的值相同。接着执行 "pop ebp" 指令时,将栈顶元素弹出并赋值给 ebp,此时 esp 的值会自动加上相应的偏移量,指向下一个栈顶元素。
因此,执行完 "pop ebp" 指令后,ebp 的值会更新为栈顶元素的值,而 esp 的值也随之更新,指向下一个栈顶元素的地址,而不是停留在原地。在正常情况下,ebp 和 esp 的值应该是相邻的,因为 ebp 是用来保存栈帧基地址的,而栈帧中的局部变量和参数都是通过 ebp 和栈指针 esp 来访问的。
阅读全文