从程序员的角度看计算机的结构,chapter 0,

从程序员的视角来看计算机的结构

一个例子,
hello world,
这个通过c语言编写的程序是以文本文件的方式存储的,文本文件本质上是每个符号通过相应的ASCII代码而对应的二进制表达存储在硬盘上,hard disk,每个英文字符和其他符号有具有相应的ASCII码,
0-255.
一个c语言的源程序(以c为文件的后缀名)是通过以下四个步骤变成可执行文件的,
首先是预处理过程,preprocessing,根据include math.h, stdio.h直接引入头文件相应的类库,引入后仍是一个文本文件。hello.c->hello.i;cpp,hello.i modified source files. preprossor,
第二步是编译,compilation, 通过操作系统里的编译器将hello.i这个被修饰的C语言源文件转化为汇编语言编写的源文件(同样也是文本文 件),hello.i->hello.s; assemble source files ,assembly program
compiler
第三步是汇编语言的编译,assembler compilation, 通过汇编语言的编译器将汇编语言的源文件转化为目标文件,目标文件是二进制码组成的文件,里面的内容全是机器可执行的指令,
 machine language instructions .如果通过文本预览器阅读的话将会产生乱码,gibberish
hello.s-hello.o,relocatable object program.  action maker :assember.
第四步是链接,在这个过程中,所有库函数对应的二进制表达(这些库函数有相应的已经预编译过的以o结尾的目标文件)将于目标文件合并,hello.o->hello.executable object files , linking phase.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值