鱼C论坛

 找回密码
 立即注册
查看: 1921|回复: 2

关于汇编栈传递参数是怎么样的?

[复制链接]
发表于 2012-12-9 16:40:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  各位大神好,小弟刚看到王爽汇编里的10.10里的参数和结果的问题。里面只介绍了2种方法,一个是寄存器传送,一个是内存的便宜地址传送。虽然后面简单说了下用栈来传送但看不懂啊。麻烦大神们举个例子帮帮小弟啊。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-9 20:36:51 | 显示全部楼层
栈用来存放函数的参数值,局部变量的值,由编译器自动分配释放。存储在一段线性的地址空间里,它遵循先入栈的后弹出的原则,假设push eax、push ebx,那么弹出的时候就是pop ebx、pop eax。你可以把它想象成往桶里放桶,第二个桶放进第一个桶里,就相当于push eax,然后再往里面放第二个桶,就相当于push ebx,那么你拿出桶的顺序就只能是先把最上面那个桶拿出来才能继续拿它下面的桶。。。  我不知道该怎么讲了,希望对你能有帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-12-9 22:11:47 | 显示全部楼层
就是说局部变量只是定义的时候在堆栈里存储了一下而已,用过以后堆栈里就没有了,内存中用的时候是不改变他的值的,也就是只要你不可以改变,他就不变也不消失
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 00:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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