[学习]简单理解堆栈平衡
来源:互联网 发布:复杂网络的建模 编辑:程序博客网 时间:2024/06/03 15:11
汇编代码来自网上 :
ESP 为 NN
push p2 ESP=NN-4
push p1 ESP=NN-8
call test ESP=NN-0C
;//进入函数内
{
push ebp ESP=NN-10
mov ebp, esp EBP 指向 栈顶 EBP==当前ESP
mov eax, dword ptr [ebp+0ch] eax = 参数2
mov ebx, dword ptr [ebp+08h] ebx = 参数1
sub esp, 8 ESP == NN-18
...
add esp, 8 ESP== NN-10
pop ebp ESP==NN - C
ret 8 ESP==NN + 4 +8
}
ESP = NN
结论(可能有误,欢迎指正) : 栈是可以执行的 , 执行玩需要保证堆栈平衡 ! ESP总是指向栈顶的. EBP通常是函数里的ESP某时的指针偏移
-push
-push
-push
call { call head .... ret n}
+pop
+pop
+pop
0 0
- [学习]简单理解堆栈平衡
- 堆 、堆栈 简单理解
- 简单理解Java堆栈
- 堆栈平衡
- 堆栈平衡
- 堆栈平衡
- 简单理解内存中的堆栈与数据结构中的堆栈
- c语言中堆栈的简单理解
- 关于static与堆栈的简单理解
- 关于Java堆栈的简单理解
- Win32堆栈平衡
- 堆栈平衡的说明
- 关于堆栈平衡
- 堆栈平衡的应用
- c++学习之--关于堆栈理解
- ucos II 系统学习之------堆栈理解
- 堆栈理解
- 堆栈理解
- Oracle存储过程返回select * from table结果
- 虚拟地址空间
- ubuntu 开机启动服务
- HDU 1556 Color the ball
- 阅读书目
- [学习]简单理解堆栈平衡
- mysql 多表备份
- 【公开源代码】详述多用户博客程序开发过程-step by step(3)-【会员系统(登录)】
- Vim ---- 简单好用的 vim 配置文件,不用插件
- 线性回归的来历
- 全栈JavaScript之路( 二十三 )DOM2、DOM3, 涉及XML命名空间的扩展(一)
- NSInvocation的使用
- [Lua]lua初识
- Vbox使用双网卡,同时上内网与外网