繁体   English   中英

将mov或lea推入堆栈

[英]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参考手册( 标签wiki中的链接)记录了指令的用途。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM