C到汇编,按指令翻译

时间:2013-10-02 19:32:49

标签: c debugging assembly

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

1 个答案:

答案 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
}