一、预编译(.i文件)
预编译过程完成的操作:
1.删除#define并进行文本替换
2.删除#if,#endif等标志
3.递归展开#include
4.删除注释
5.添加行号和文件
6.保留#pragma
二、编译(.s文件)
编译过程完成的功能有:
1.词法分析
2.语法分析(单条语句分析)
3.语义分析(结合上下文分析)
4.代码优化(代码的调整)
5.生成汇编指令
三、汇编(.o)
汇编过程中的目标文件也称可重入的二进制文件,汇编的作用是翻译指令。
四、链接(.exe)
1.合并段和符号表
2.符号解析
3.分配地址和空间
4.符号的重定位
五、运行
运行过程中的作用是:
1.建立虚拟地址空间和物理内存的映射(创建映射机构体PCB)即创建页目录和页表。
2.加载指令和数据 load
3.入口地址写入下一行指令寄存器
汇编和链接的原因是:源文件进行预编译、编译之后弱符号及符号表外部符号未处理;指令段存在虚假的地址和偏移。