概述
你的等效C代码是这样的:
extern int32 arr[];
int my_func(int32 n, ...) {
int32 a=n;
...
arr[a];
...
}
n作为单个32位寄存器esi传递,存储到本地堆栈帧.
然后该参数用于评估64位表达式4 * a.如果它应该被链接器重新定位到地址’arr’,则可以解释’0′.
然后我的猜测是汇编代码不是由生成的
gcc -S foo.c,但是由gcc -c foo.c; objdump -d foo.o
// Similar code from a 32-bit machine
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 8b 45 08 mov 0x8(%ebp),%eax
6: 8b 04 85 00 00 00 00 mov 0x0(,%eax,4),%eax
d: 5d pop %ebp
e: c3 ret
f: 90 nop
最后
以上就是高兴摩托为你收集整理的leaq c 汇编语言,大会:有人可以用leaq指令解释这行吗?的全部内容,希望文章能够帮你解决leaq c 汇编语言,大会:有人可以用leaq指令解释这行吗?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复