我是靠谱客的博主 高兴摩托,最近开发中收集的这篇文章主要介绍leaq c 汇编语言,大会:有人可以用leaq指令解释这行吗?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

你的等效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指令解释这行吗?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部