堆栈(上)

汇编视频

堆栈

百度百科曰:
堆栈(上)
大概就是:
在调用程序时,电脑自动开辟的用来放数据的内存空间,程序运行完再自动释放。

栈顶和栈底
图片源自
堆栈(上)
在内存管理中,对于堆来讲,生长方向是向上的,向着内存地址增加的方向生长;对于栈来讲,生长方向是向下的,向着内存地址减小的方向增长。

ESP:其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的栈顶。
EBP:其内存放着一个指针,该指针永远指向系统栈最上面一个栈帧的底部。

堆栈(上)

堆栈平衡

堆栈平衡:执行程序之前和执行完程序之后的堆栈是完全一样的,否则程序会出错的。

1)如果要返回父程序,则当我们在堆栈中进行堆栈的操作的时候,一定要保证在RET这条指令之前,ESP指向的是我们压入栈中的地址。
2)如果要通过堆栈传递参数了,那么在函数执行完毕后,要平衡参数导致的堆栈变化。

20207.25 第一周