gcc -S test.c 将c代码转换为程序集。我需要的是一个每指令翻译器。我的意思是我需要一种方法,通过这种方式我可以知道这组汇编指令对应于这个c语句,所以不是整个汇编代码的整个c代码。任何的想法?提前致谢
答案 0 :(得分: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
}