这段时间看了不少的东西。
下面写一下对栈的一些理解:
Stack 是由内存区域的结束地址开始,从高位(地址)向低位(地址)分配。
栈顶:esp
栈底:ebp
在函数运行时,会开辟栈帧,一些数据被存进去
push ebp 压栈 esp减小 存入ebp内容
mov ebp,esp
根据约定,程序从_main标签开始执行,这时会在 Stack 上为main建立一个栈帧,
并将 Stack 所指向的地址,写入 ESP 寄存器。
后面如果有数据要写入main这个帧,就会写在 ESP 寄存器所保存的地址。
一个栈帧从高地址到低地址应该是
函数参数
函数返回地址
ebp #这里到下面是一个栈帧,执行完后会执行返回地址里的内容
栈内数据
esp
待更新。。