3

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

4

1 回答 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 回答