系列文章目录
这个学期我们进行学习了计算机组成原理的课程,我认为该课程十分的有趣。该文章将是计算机组成原理系列的第一篇文章!
文章目录
前言
我以前写了这么多的代码,学到这里,才发现原来在内存中还有大小端与边界对齐这些奇妙的东西。我们来了解下它吧。提示:以下是本篇文章正文内容,下面案例可供参考
一、.c文件到可执行.exe文件经历了什么?
使用gcc编译系统分步翻译.c文件。依次得到预处理器的输出hello.i,编译器输出hello.s,汇编器输出hello.o,链接器输出hello.exe。其中,hello.i 和 hello.s 为文本格式,hello.o 和 hello.exe为二进制格式。
.i文件本质上还是高级语言源程序,.c预处理到.i文件,会对源程序中以#号开头的预编译命令进行处理,如果是#include,那么会将#include后面的文件内容嵌入到源程序中,生成信息量更大的.i文件。
.s文件是由汇编语言描述的。在.s文件中可以找到与hello.c 下功能上相对应代码段。
.o文件是.s文件上的汇编语言转换成的二进制序列。
.exe 是在.o文件上进行链接,将多个可重定位的文件和标准库函数合并,生成一个可执行的目标