栈帧:每一个函数都有属于自己的栈帧,若在一个函数a中调用b,则a的栈帧将会被压到下面,然后进入到b,在运行b函数之前,有一段保存a栈帧的操作即保存属于函数a的ebp,然后才到b的栈帧空间

栈指针:每个函数的调用都有一个栈区,都有栈指针

帧指针:(主要是运用在函数的回溯,栈底地址也叫帧指针)每个栈帧对应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量。

如:

主函数1,子函数2那么主函数调用子函数后,子函数先将原本存放主函数1的帧首地址入栈,然后将主函数1入栈后,改变的esp值作为子函数本身的帧首地址(先esp改变然后再入栈的)

总的来说:esp 又称栈指针 ebp又称为帧指针