Assembly 输入0,0和按ebp之间的差异?

Assembly 输入0,0和按ebp之间的差异?,assembly,x86,Assembly,X86,我不熟悉组装,并通过示例获得更好的理解。我遇到了两个程序,一个使用enter0,0,另一个使用pushebp;mov ebp,esp。我理解pusha将所有通用寄存器推送到堆栈上。我很困惑这两个术语是否可以互换 enter 0,0 pusha 等于 push ebp mov ebp, esp 装配中 单个指令enter 0,0相当于一对指令push ebpmov ebp,esp。enter需要4个字节进行编码,而组合只需要3个字节 由于pusha, 将其从第一个指令中删除,或添加到第二个指令

我不熟悉组装,并通过示例获得更好的理解。我遇到了两个程序,一个使用
enter0,0
,另一个使用
pushebp;mov ebp,esp
。我理解
pusha
将所有通用寄存器推送到堆栈上。我很困惑这两个术语是否可以互换

enter 0,0
pusha
等于

push ebp
mov ebp, esp

装配中

单个指令
enter 0,0
相当于一对指令
push ebp
mov ebp,esp
enter
需要4个字节进行编码,而组合只需要3个字节

由于
pusha


将其从第一个指令中删除,或添加到第二个指令中。

单个指令
输入0,0
相当于一对指令
推ebp
mov ebp,esp。
enter
需要4个字节进行编码,而组合只需要3个字节

由于
pusha


从第一个指令集中删除它,或将其添加到第二个指令中。

阅读指令集参考,了解指令集的功能。不,它们不是等效的,第二个代码只与
enter 0,0
匹配。除了
ebp
,它不保存寄存器,阅读指令集参考,了解指令的作用。不,它们不是等效的,第二个代码只与
enter 0,0
匹配。除了
ebp
,它不保存寄存器,