首页 > 其他分享 >第一章 计算机系统漫游

第一章 计算机系统漫游

时间:2022-11-03 12:02:48浏览次数:42  
标签:计算机系统 文件 32 10 第一章 110 漫游 hello 105

1.1信息就是位+上下文

#include <stdio.h>

int main()
{
    printf("hello, world\n");
}

其对应的ASCII文本表示如下

  #    i    n    c    l    u    d    e    <sp>    <    s    t    d    i    o    .
//35    105    110    99    108    117    100    101    32        60    115    116    100    105    111    46
  h    > \n    \n    i    n    t <sp>    m    a    i    n    (    )    \n    {
//104    62    10    10    105    110    116    32    109    97    105    110    40    41    10    123
  \n    <sp> <sp> <sp> <sp>    p    r    i    n    t    f    (    "    h    e    l
//10    32     32      32    32    112    114    105    110    116    102    40    34    104    101    108
  l    o    ,    <sp>w    o    r    l    d    \    n    "    )    ;    \n    }
//108    111    44    32    119    111    114    108    100    92    110    34    41    59    10    125

 

1.2程序被其它程序翻译成不同的格式

unix>gcc -o hello hello.c,此时hello.c将经理4个阶段:

  1. hello.c -> 预处理器 -> hello.i  预处理阶段  (.i被修改后的源文件 文本)
  2. hello.i -> 编译器 -> hello.s   编译阶段  (.s汇编文件 文本)
  3. hello.s ->汇编器 -> hello.o   汇编阶段    (.o可重定位目标文件 二进制)
  4. hello.o -> 链接器 -> hello.exe    链接阶段  (可执行目标文件 二进制)

预处理阶段:

预处理器根据以字符#开头的命令,修改原始.c文件,在hello.c中,预处理器将读取stdio.h的内容,并把其直接插入到hello.c的文本中,结果就得到了修改后的源文件,一般以.i为文件扩展名。

 

编译阶段:

编译器将hello.i翻译成hello.s,它包含一个汇编语言文件,该文件的每条语句都以一种标准的文本格式确切地描述了一条低级机器语言指令。

 

汇编阶段:

汇编器将hello.s翻译成机器语言指令,把这些指定打包成为一种叫做可重定位(relocatable)目标程序的格式,并将结果保存到hello.o中。

hello.o是一个二进制文件,它的字节编码是机器语言指令而不是字符。

 

链接阶段:

代码中我们调用了printf(),它是C标准库中的一个函数,每个C编译器都提供。

printf函数存在于一个名为printf.o的单独的预编译目标文件中,而此文件必须以某种方式并入到我们的hello.o中。

链接器就负责处理这种并入,结果就得到hello.exe文件,这是可执行目标文件。

可执行目标文件加载到存储器后,由系统负责执行。

 

1.3了解编译系统如何工作是大有益处的

111

标签:计算机系统,文件,32,10,第一章,110,漫游,hello,105
From: https://www.cnblogs.com/anzf/p/16853980.html

相关文章

  • 计算机网络第一章复习
    计算机网络第一章复习目录计算机网络第一章复习因特网网络边缘接入方式家庭接入:DSL、电缆、FTTH、拨号和卫星企业(和家庭)接入:以太网和WiFi广域无线接入:3G和LTE(蜂窝网......
  • c primer plus 第一章学习笔记
    1.中央处理单元(cpu)2.随机存取内存(ram)是储存程序和文件的工作区3.使用c语言的7个步骤:1)定义程序的目标:   先自己有思路,思考需要做什么,需要程序做什么,需要哪些信息,......
  • 第一章、Flink wordcount 入门示例
    概述希望通过本示例对flink有一个轮廓性的认识本示例实现效果:flink连接SocketServer,从SockerServer中按行读取数据作为数据输入,将输入的数据根据空格切分、分组、......
  • javascript百炼成仙 第一章 掌握JavaScript基础 1.13 语惊四座
    “叶小凡,现在你把这道题解释一下吧。”林元青看向叶小凡,稳重但不缺威严地说到。“是。”弟子面朝着林元青作揖,然后抬起兄,缓缓到来。“这道题看似复杂,但只要一步一步细细分......
  • javascript百炼成仙 第一章 掌握JavaScript基础 1.2直接量
    叶小凡的住处被安排在青山院西北角的一个房间里,虽不宽敞,倒也干净。叶小凡两眼露出振奋的眼神,随便吃了点乡亲们准备的干粮后,就立刻开始打坐修行。编程之修,重在积累,而非资质。......
  • javascript百炼成仙 第一章 掌握JavaScript基础1.8 对象的取值
    “小娃娃,我现在问你,如果我事先不知道对象的某个属性叫什么,那又该怎么访问对象中对应这个属性的值呢?”叶老笑呵呵地问到。“什么什么,事先都不知道对象的属性名称,那怎么可能访......
  • JavaScript第一章
    JavaScript第一章JavaScript是由网景公司发明的一种脚本语言,最早期仅用于对网页中的表单进行验证或动态特效。自从NodeJS出现后,JavaScript也能够作为后端服务器程序的......
  • 第一章 Linux 基础
    第一章Linux基础1、Linux目录结构linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“​​/​​”,然后在此目录下再创建其他的目录。深刻理解lin......
  • CSS权威指南 读书笔记 第一章节
    CSS规则中,@import必须放在最前面,否则无效,但本人目前现在用的很少;CSS对规则间的空格并不敏感,规则内的也不敏感,所以在CSS语句中分隔模式可以是空格、tab符、换行,也可组合使......
  • Graphics Stack总结(二) Mesa漫游
    回顾前一篇文章中我们对Linuxgraphicsstack有了一个快速介绍,接下来我将解释为什么我们称之为graphicsdriverinLinux实际上是三个不同drivers的组合:theuserspace......