[英]Pushing mov or lea to stack
我有两行代码。
leal 12(%ebp), %ecx
pushl %ecx
call func
和
movl 12(%ebp), %edx
leal (%edx), %ecx
pushl %ecx
call func
我有C函数func(&argument)
。 第一行有效,而另一行无效。 谁能告诉我为什么?
因为lea
是移位加法指令,但是mov
(带有内存源操作数)是负载,所以第二个块执行func(argument)
。 显然,当func(&argument)
正确时,这是行不通的。
insn参考手册( x86标签wiki中的链接)记录了指令的用途。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.