程序是如何跑起来的?--预处理,编译,汇编,链接

hello,world 是怎么执行的?总体来讲就是四个步骤。
预处理 编译 汇编 链接
 

 

1.预处理的动作如下:

2.编译(将是一个大动作,有限状态机)生成汇编代码

  1. 扫描:字面理解
  2. 语法分析:生成一棵语法树。
  3. 语义分析:语法有没有确定的意义,比如两个指针相乘是没有意义的,编译阶段的语义分许是静态语义。
  4. 源代码优化
  5. 代码生成
  6. 目标代码优化

3.汇编,将汇编语言翻译成机器码,对应译码,难度不大。

4.链接:我们把目标文件称为模块,将各个模块之间的互相引用处理好,使得各个模块都能够正确的衔接。类似拼图。

 
链接主要包括了地址和空间分配,符号决议,重定位这些步骤。
使用链接器,你可以直接引用其他模块的函数和全局变量而无需知道它们的地址,因为链接器在链接的时候,会根据你引用的符号,自动的去相应的位置查到地址,然后将所有引用符号的指令进行修改。
posted @ 2022-12-16 15:23  stu--wy  阅读(76)  评论(0)    收藏  举报