鱼C论坛

 找回密码
 立即注册
查看: 1512|回复: 3

win32汇编栈平衡问题

[复制链接]
发表于 2012-8-13 12:38:39 | 显示全部楼层 |阅读模式
1鱼币
push ebp
mov ebp,esp,
add esp,fffffff8
mov eax,dword ptr [ebp-4]
mov ax,dword ptr [ebp-6]
mov al,dword ptr [ebp-7]
leave ret

add esp,fffffff8 这里是否为定义栈的大小空间?
那么为什么这里又是 esp 加8 而不是ebp加8呢,不是已经把esp的值赋值给ebp了吗
这里有点疑问 一种似觉似懂 又不是很明白  求大神解释下

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-14 23:12:52 | 显示全部楼层
求解答啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2012-8-20 17:37:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-26 01:18:27 | 显示全部楼层
add esp,fffffff8
其实就是减8.。FFFFFFF8就负8.。。。。加上负8就是Esp减去8,进栈是高位到低位的,这点知道吧

win32和DOS不同,不能随便写内存。否则会引发保护错误提示,所以要设置esp开辟内存位置(栈)
用来装局部变量。。还有的是esp,,ebp.的作用你还没弄明白,esp就是真正的栈指针,ebp只是它默认的段是SS段寄存器,真正指向栈顶的是esp,,你改变了esp,ebp不会跟着变...就算你改了ebp,栈指针的偏移地址还一样是esp的值,,,,王爽老师的汇编书还是的理解通透啊,每个实验都应该自己尽量完成啊,基础还是要打好的。。还是要一步一个脚印啊,老师说的对啊,勿在浮沙高筑台。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-11 20:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表