4

计算机编译和运行程序时发生了什么

 2 years ago
source link: https://segmentfault.com/a/1190000039969417
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一、编译流程

预处理:根据以字符#开头的命令,修改原始的C程序。例如:第一行中的#include xxx命令告诉预处理器要读取头文件的内容,并把它直接插入程序文本中。最终得到.i文件
编译:将文本文件.i翻译成文本文件.s,它包含汇编语言程序
汇编:将.s文件翻译成机器语言指令,并打包成可重定位的目标程序,结果生成到.o文件中
链接:链接合并多个.o文件,最终得到可执行程序

unix系统运行流程:

2.1 从磁盘加载可执行文件到主存

利用直接存储器存取技术,数据可以不通过处理器直接从磁盘加载到主存(DRAM)中

2.2 执行并输出

目标文件中的代码和数据被加载到主存中之后,处理器就开始执行程序中main程序中的机器语言指令,再从寄存器文件中复制到显示设备,最终显示在屏幕上


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK