目录
stack

这段时间看了不少的东西。
下面写一下对栈的一些理解:

Stack 是由内存区域的结束地址开始,从高位(地址)向低位(地址)分配。

栈顶:esp
栈底:ebp

在函数运行时,会开辟栈帧,一些数据被存进去

push   ebp       压栈 esp减小 存入ebp内容
mov    ebp,esp        

根据约定,程序从_main标签开始执行,这时会在 Stack 上为main建立一个栈帧,
并将 Stack 所指向的地址,写入 ESP 寄存器。
后面如果有数据要写入main这个帧,就会写在 ESP 寄存器所保存的地址。

一个栈帧从高地址到低地址应该是

函数参数
函数返回地址
ebp                #这里到下面是一个栈帧,执行完后会执行返回地址里的内容
栈内数据
esp  

待更新。。

文章作者: zzl
文章链接: https://www.zzl14.xyz/2019/09/27/stack_explain/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 try
打赏
  • 微信
  • 支付宝

评论