“ 走好选择的路,别选择好走的路,你才能拥有真正的自己。”
There you go again!
I'll back you up!
记录下函数调用的情况~
函数调用的另一个词语表示叫作 过程。一个过程调用包括将数据和控制从代码的一部分传递到另一部分。
另外,它还必须在进入时为过程的局部变量分配空间,并在退出时释放这些空间。
而大多数机器的数据传递、局部变量的分配和释放通过操纵程序栈来实现。为单个过程(函数调用)分配的那部分栈称为栈帧。
需要明确的是,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(低地址)。
先来了解一个概念,栈帧(stack frame),机器用栈来传递过程参数,存储返回信息,保存寄存器用于以后恢复,以及本地存储。栈帧其实是两个指针寄存器,寄存器%ebp为帧指针