1.寄存器中有eax,ebx,ecx,edx,ebp,esp。其中上述最后两个是存放地址的,这两个地址是来维护函数栈帧的。栈先使用高地址,再使用底地址。ebp指向栈低指针(高地址) ,esp指向栈顶指针(低地址)。
2.main函数也是被其它函数调用的,函数最后的return 0,返回给mainret。
3.push 压栈,pop出栈。
4.调用一个函数,在栈上开辟了一段空间,那一小段空间里面存的初始值都是cccccccc,如果定义了一个变量,但是没有给它赋值,它默认存放的就是cccccccc,打印出来就是烫烫烫烫。
5.将call指令的下一条指令压栈,以便调用完函数返回的时候能找得到返回的地方。
6.形参并不是在被调用的函数内创建的,而是在调用它的函数内创建的。
7.函数的返回值会放在寄存器中,既然函数销毁的时候,这个返回值还在,但要注意的是函数只能有一个返回值。
8.在整个函数的调用过程中,形参是最后销毁的。
9.给每个函数开辟的空间是不一样的,编译器会自动完成,一般不会出现比如说局部变量过多而导致栈满的情况。