mnb1237273 发表于 2012-12-9 16:40:42

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

各位大神好,小弟刚看到王爽汇编里的10.10里的参数和结果的问题。里面只介绍了2种方法,一个是寄存器传送,一个是内存的便宜地址传送。虽然后面简单说了下用栈来传送但看不懂啊。麻烦大神们举个例子帮帮小弟啊。。

username_badboy 发表于 2012-12-9 20:36:51

栈用来存放函数的参数值,局部变量的值,由编译器自动分配释放。存储在一段线性的地址空间里,它遵循先入栈的后弹出的原则,假设push eax、push ebx,那么弹出的时候就是pop ebx、pop eax。你可以把它想象成往桶里放桶,第二个桶放进第一个桶里,就相当于push eax,然后再往里面放第二个桶,就相当于push ebx,那么你拿出桶的顺序就只能是先把最上面那个桶拿出来才能继续拿它下面的桶。。。我不知道该怎么讲了,希望对你能有帮助。

shdfsbgfjks 发表于 2012-12-9 22:11:47

就是说局部变量只是定义的时候在堆栈里存储了一下而已,用过以后堆栈里就没有了,内存中用的时候是不改变他的值的,也就是只要你不可以改变,他就不变也不消失
页: [1]
查看完整版本: 关于汇编栈传递参数是怎么样的?