美文网首页
深入理解计算机系统笔记 2020-10-16

深入理解计算机系统笔记 2020-10-16

作者: White夏天baby | 来源:发表于2020-10-18 00:05 被阅读0次

    下面这段个人是很想精简的,但是,思虑再三,感觉没办法精简,照抄原文了。

    hello程序的生命周期是从一个高级C语言程序开始的,因为便于人类阅读。但,为了在系统上运行hello.c程序,每条C语句都必须被其他程序转化成为一系列的低级机器语言指令。然后,这些指令按照一种称为 可执行目标程序 的格式打好包,并以二进制磁盘文件的形式存放起来。 目标程序也称为可执行目标文件

    下图为对上面这段话的理解


    未命名文件(1).png

    在Unix系统中,源文件到目标文件的转化是由编译器驱动程序完成的


    2020-10-16_23-01.png

    linux> gcc -o hello hello.c
    gcc编译器驱动程序 读取 源程序文件hello.c,并把它翻译成一个 可执行目标文件hello。翻译过程分四个阶段,执行这四个阶段的程序(预处理器,编译器,汇编器,链接器)一起构成了编译系统

    编译系统.png

    1.预处理阶段。预处理器修改原始的C程序,得到扩展名为.i的另一个C程序。如:读取引入的文件,并把它直接插入程序文本中。
    2.编译阶段。将C程序转化成汇编语言程序。
    3.将汇编语言程序转化成机器语言指令,将这些指令打包成可重定向目标程序的格式,转化成一个二进制文件。
    4.链接阶段。合并函数的预编译文件,转化成可执行目标文件(二进制文件)。

    相关文章

      网友评论

          本文标题:深入理解计算机系统笔记 2020-10-16

          本文链接:https://www.haomeiwen.com/subject/gkitmktx.html