鱼C论坛

 找回密码
 立即注册
查看: 1869|回复: 1

我想阅读gCC和G++编译器生成的C语言和C++语言汇编代码

[复制链接]
发表于 2019-12-13 11:01:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想阅读gcc和g++编译器生成的C语言和C++语言汇编代码,请问谁有什么好资料(网站、书籍、论坛均可),给我推荐一下。

//下面是C语言的代码:
  1. #include <stdio.h>

  2. int add(int a, int b)
  3. {
  4.         int c;
  5.         c = a + b;
  6.         return c;
  7. }

  8. int main()
  9. {
  10.        
  11.         int a = 2, b=3, c;
  12.         c = add(a, b);
  13.         return 0;
  14. }
复制代码


//下面是gcc生成的汇编代码:
  1.         .file        "cas.c"
  2.         .text
  3.         .globl        add
  4.         .type        add, @function
  5. add:
  6. .LFB0:
  7.         .cfi_startproc
  8.         pushq        %rbp
  9.         .cfi_def_cfa_offset 16
  10.         .cfi_offset 6, -16
  11.         movq        %rsp, %rbp
  12.         .cfi_def_cfa_register 6
  13.         movl        %edi, -20(%rbp)
  14.         movl        %esi, -24(%rbp)
  15.         movl        -20(%rbp), %edx
  16.         movl        -24(%rbp), %eax
  17.         addl        %edx, %eax
  18.         movl        %eax, -4(%rbp)
  19.         movl        -4(%rbp), %eax
  20.         popq        %rbp
  21.         .cfi_def_cfa 7, 8
  22.         ret
  23.         .cfi_endproc
  24. .LFE0:
  25.         .size        add, .-add
  26.         .globl        main
  27.         .type        main, @function
  28. main:
  29. .LFB1:
  30.         .cfi_startproc
  31.         pushq        %rbp
  32.         .cfi_def_cfa_offset 16
  33.         .cfi_offset 6, -16
  34.         movq        %rsp, %rbp
  35.         .cfi_def_cfa_register 6
  36.         subq        $16, %rsp
  37.         movl        $2, -12(%rbp)
  38.         movl        $3, -8(%rbp)
  39.         movl        -8(%rbp), %edx
  40.         movl        -12(%rbp), %eax
  41.         movl        %edx, %esi
  42.         movl        %eax, %edi
  43.         call        add
  44.         movl        %eax, -4(%rbp)
  45.         movl        $0, %eax
  46.         leave
  47.         .cfi_def_cfa 7, 8
  48.         ret
  49.         .cfi_endproc
  50. .LFE1:
  51.         .size        main, .-main
  52.         .ident        "GCC: (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0"
  53.         .section        .note.GNU-stack,"",@progbits
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-13 19:17:41 | 显示全部楼层
你那里看不懂?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-25 11:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表