查看: 1838|回复: 0
收起左侧

RiscV汇编介绍(1)-编译过程

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

    发表于 2021-3-4 15:10:08 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

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

    x
    本帖最后由 皋陶 于 2021-3-4 15:08 编辑

    RiscV汇编介绍(1)-编译过程

       RiscV汇编介绍(2)-编译过程


    从c/c++源文件,到能够执行文件,须要如下几个步骤:


    • 预处理/编译
    • 汇编
    • 连接


    国内芯片技术交流-RiscV汇编介绍(1)-编译过程risc-v单片机中文社区(1)


    下面咱们以hello world程序为例,展现整个编译连接过程。


    1. 编写hello.c代码


    1. #include <stdio.h>
    2. int main(void)
    3. {
    4.         printf("Hello World!\n");
    5.         return 0;
    6. }
    复制代码


    2.使用gcc –E hello.c –o hello.i, 将源文件hello.c文件预处理生成hello.i


    3.编译, gcc –S hello.i –o hello.s, 生成汇编程序hello.s,对于x86系统,生成x86汇编代码。


    1. ction        .rodata
    2. .LC0:
    3.         .string        "Hello World!"
    4.         .text
    5.         .globl        main
    6.         .type        main, @function
    7. main:
    8. .LFB0:
    9.         .cfi_startproc
    10.         pushq        %rbp
    11.         .cfi_def_cfa_offset 16
    12.         .cfi_offset 6, -16
    13.         movq        %rsp, %rbp
    14.         .cfi_def_cfa_register 6
    15.         leaq        .LC0(%rip), %rdi
    16.         call        puts@PLT
    17.         movl        $0, %eax
    18.         popq        %rbp
    19.         .cfi_def_cfa 7, 8
    20.         ret
    21.         .cfi_endproc
    22. .LFE0:
    23.         .size        main, .-main
    24.         .ident        "GCC: (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0"
    25.         .section        .note.GNU-stack,"",@progbits
    复制代码


    4.汇编 gcc –c hello.s –o hello.o, 生成目标机器码。


    5.连接,和系统库文件进行连接,ld hello.o –o hello, 执行会出错,只靠一个hello.o不能生成一个完整的可执行文件。


    gcc hello.c –o hello 能够直接生成可执行文件。






    上一篇:RISC-V到底是怎么一回事
    下一篇:RiscV汇编介绍(2)-编译过程
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-11-6 08:04 , Processed in 0.423992 second(s), 48 queries .

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