文档介绍:程序是如何运行的
作为一个程序员,已不知编了多少行代码。但若问我程序是如何在计算机中运行的,我怕只有张口结舌。书中第一章就给了我们相关的答案。
首先,看如下最简单的C语言Helloword的代码
1#include <>
2
3int main()
4{
5   printf("hello, world\n");
6}
。其本质实际上是由0、1的比特(位)序列构成的。8位为一个字节。每个字节对应某个文本字符。不少系统用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
以此类推,在计算机系统中,任何介质中的数据都是比特序列。把他们区分成不同的数据对象,是通过数据对象的上下文来确定的。
程序编译
程序的编译过程如下图所示,分为预处理、编译、汇编、链接等几个阶段。
预处理:预处理相当于根据预处理命令组装成新的C程序,不过常以i为扩展名。
编译:    将得到的i文件翻译成汇编代码。s文件。
汇编:    将汇编文件翻译成机器