标题:IA32中pushl %esp 和一般的 pushl %ebp 有什么区别吗?
只看楼主
wtyj112
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2007-5-9
结帖率:85.71%
 问题点数:0 回复次数:1 
IA32中pushl %esp 和一般的 pushl %ebp 有什么区别吗?
问题一、IA32中pushl %esp 栈指针是怎么做的?
问题二、IA32pushl %ebp 是先栈指针--再入栈,还是先入栈再指针--?
搜索更多相关主题的帖子: ebp esp pushl 
2010-05-11 23:05
chengstone
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
帖 子:562
专家分:226
注 册:2004-4-3
得分:0 
push语句算是一个元语(元操作),期间不能被打断,作为CPU的一条指令,它跟实际的处理器指令体系有关系

现在大多的教程对于PUSH的解释都是先移动栈指针,再数据入栈
也有的处理器是先进行数据入栈然后再移动指针的,  而且有的栈是栈向上生长,有的是栈向下生长,所以要根据具体的实际情况来定

根据我的记忆,通常把PUSH操作看成是先移动栈指针,再数据入栈   

pushl %esp 和 pushl %ebp的区别:
pushl %ebp这个我就不解释了,pushl %esp这句其实就是push old_esp,入栈以后,得到了new_esp

qq:69558139
2010-05-14 09:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-306261-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051848 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved