一函数栈帧的创建
1.寄存器
函数栈帧
ebp,esp 这两个寄存器中存放的是地址,这2个地址是用来维护函数栈帧的。
每一个函数调用,都要在栈区创建一个空间。
每一个值都是通过压栈的方法由高地址往低地址存储。
esp:栈顶指针 ebp:栈低指针
push: 压栈:给栈顶放一个元素
pop: 出栈:从栈顶删除一个元素
内存中栈帧的初始化为 cc cc cc cc
cc cc cc cc~~
所以在发生越界或其他操作时,运行会出现 烫烫烫~~
函数调用是结束后怎么返回的?
如Add函数的返回值在销毁前会返回一个值,放在一个寄存器中,这个寄存器会将该值压在main函数下面