gcc -S test.c将 c 代码转换为汇编。我需要的是按指令翻译。我的意思是我需要一种方法,通过它我可以知道这组汇编指令对应于这个 c 语句等等,而不是整个 c 代码到整个汇编代码。任何想法?提前致谢
问问题
270 次
1 回答
3
这可以通过objdump -S
尝试解释调试信息来完成 - 前提是它是用编译的-g
或等效的。例如,对于程序:
int main(void)
{
int x = 42;
int y = 24;
return x + y;
}
它确实:
00000000 <main>:
int main(void)
{
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 83 ec 10 sub $0x10,%esp
int x = 42;
6: c7 45 fc 2a 00 00 00 movl $0x2a,-0x4(%ebp)
int y = 24;
d: c7 45 f8 18 00 00 00 movl $0x18,-0x8(%ebp)
return x + y;
14: 8b 45 f8 mov -0x8(%ebp),%eax
17: 8b 55 fc mov -0x4(%ebp),%edx
1a: 01 d0 add %edx,%eax
}
于 2013-10-02T19:39:43.973 回答