深入理解计算机系统学习(一)第一章
2010-12-27 16:19
549 查看
今天买的深入理解计算机系统到了,开始了新的学习。深入理解书中的概念将很大程度提高编写高效程序的能力。
源文件编译为可执行文件的过程:
经过了四个步骤:预处理阶段、编译阶段、汇编阶段、链接阶段。
1 .首先编写的源程序被以二进制编码形式存放在磁盘中,预编译器完成的功能是完成包含命令#include<>和预处理命令#ifdef,根据这些命令将程序做修改,如#include <stdio.h>会将stdio.h原封不动的放在#include <stdio.h>处,宏定义也在这个过程被替换,如#define MAX 256 ,会将源程序中所有出现MAX的地方换成256。此时经过预编译的文件为XXX.i文件。
2. 编译阶段:
这个阶段会将XXX.i文件经编译器处理生成XXX.s的汇编文件,生成的文件为底层的汇编语言,生成文件为:XXX.s。
3. 汇编阶段
这个阶段将汇编文件经汇编器处理生成.o文件,这种文件成为可重定位目标文件,它是一个二进制文件,但是它的字节编码是机器语言指令而不是字符。
4.链接阶段
比如程序中使用了frintf库函数,这个函数存在于一个名为printf.o的单独的预编译目标文件中,而这个文件必须以某种方式并入到程序中才可以执行,连接器就处理这种并入。经过链接阶段最终生成可执行文件。
源文件编译为可执行文件的过程:
经过了四个步骤:预处理阶段、编译阶段、汇编阶段、链接阶段。
1 .首先编写的源程序被以二进制编码形式存放在磁盘中,预编译器完成的功能是完成包含命令#include<>和预处理命令#ifdef,根据这些命令将程序做修改,如#include <stdio.h>会将stdio.h原封不动的放在#include <stdio.h>处,宏定义也在这个过程被替换,如#define MAX 256 ,会将源程序中所有出现MAX的地方换成256。此时经过预编译的文件为XXX.i文件。
2. 编译阶段:
这个阶段会将XXX.i文件经编译器处理生成XXX.s的汇编文件,生成的文件为底层的汇编语言,生成文件为:XXX.s。
3. 汇编阶段
这个阶段将汇编文件经汇编器处理生成.o文件,这种文件成为可重定位目标文件,它是一个二进制文件,但是它的字节编码是机器语言指令而不是字符。
4.链接阶段
比如程序中使用了frintf库函数,这个函数存在于一个名为printf.o的单独的预编译目标文件中,而这个文件必须以某种方式并入到程序中才可以执行,连接器就处理这种并入。经过链接阶段最终生成可执行文件。
相关文章推荐
- 深入理解计算机系统(第一章学习笔记)
- 深入理解计算机系统第五章学习-性能优化 2
- 深入理解计算机系统(第二章学习笔记)
- 深入理解计算机系统学习笔记(一)之此书简介
- 深入理解计算机系统第五章学习-性能优化 3
- 深入理解计算机系统学习之程序编译过程
- 深入理解计算机系统第一章学习笔记
- 深入理解计算机系统 第一章 计算机系统漫游
- 【Back to base】深入理解计算机系统 读书笔记 第一章 计算机系统漫游
- [深入理解计算机系统 学习笔记] 01 系统漫游
- Computer Systems A Programmer's Perspective(深入理解计算机系统)第一章读书笔记
- 深入理解计算机系统学习笔记(二)之程序优化
- 深入理解计算机系统学习记录(一)
- 深入理解计算机系统读书笔记之第一章:漫游
- 深入理解计算机系统 chapter 9 学习笔记
- 【深入理解计算机系统[2]】第一章 计算机系统漫游
- 深入理解计算机系统--读书笔记(第一章)
- 深入理解计算机系统--学习
- 深入理解计算机系统 学习小结
- 读书笔记《深入理解计算机系统》(第三版) 第一章 计算机系统漫游