在讲解.C代码变成可执行文件的过程之前先来简单介绍汇编。
比如有个汇编语句:
mov ax,bx
计算机执行这条指令的含义是把bx寄存器里面的数据放入ax寄存器里面,(ax与bx你可以先认为是CPU存放数据的地方,mov是CPU执行的一个动作),汇编是最接近机器的语言,为什么这么说,
在芯片公司会有一份手册,对应的汇编指令与对应二进制列表
图2-1汇编指令与二进制
大家可以看到红色表示对应汇编指令,黄色表示对应的二进制码。假设mov指令对应的二进制操作码是0x011 ax寄存器二进制为0x1 (就好比CPU认为操作码后面如果接0x1就代表ax寄存器),bx寄存器二进制为0x2,这里只是简单设置对应二进制码,实际中复杂很多。
那么对应的机器执行指令是 011 01 02 表示对应的汇编mov ax bx,在程序最开始没有汇编,很多程序员通过二进制指令进行编码,一遍查看手册一遍进行编码,这样是不是很麻烦,后面产生了汇编,对应于二进制就很大进步了,大家只要对应指令就可以进行编程了,不用再想着复杂的二进制指令了。
随着时代进步,大牛发明了C语言,比汇编更高级的语言,可是机器还是只能执行二进制文件,对吧,那么我们可以把程序从.C变成.S.然后再变成对应二进制文件,这样不就可以了么?
接着来看一个.C转为二进制文件的过程。
程序:
《程序员的自我修养》第2章解析
最新推荐文章于 2022-12-15 22:20:25 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)