首页 > 编程语言 >读《程序是怎样跑起来的》第八章有感

读《程序是怎样跑起来的》第八章有感

时间:2024-02-28 23:01:57浏览次数:18  
标签:可执行文件 文件 有感 程序 第八章 编译器 内存 源代码

第八章——从源文件到可执行文件

1.源文件如何通过编译转换成可执行文件
1)计算机只能运行本地代码
某种编程语言编写的程序就称为源代码,保存源代码的文件称为源文件。

源代码无法直接运行
原因:CPU能直接解析并运行的不是源代码而是本地代码的程序。

2)本地代码的内容
Dump:每个字节用2位十六进制数来表示的方式.
本地代码的内容就是各种数值的罗列。

3)编译器负责转换源代码
能够把C语言等高级编程语言编写的源代码转换成本地代码的程序称为编译器。
每个编写源代码的编程语言都需要其专用的编译器。

编译器不仅和编程语言的种类有关,和CPU的类型也是相关。这样同样的源代码就可以翻译成适用于不同CPU的本地代码。

在购买编译器时,通常说明产品名称及版本就OK。

4)仅靠编译是无法得到可执行文件的
编译器转换源代码后,生成的本地文件进行“链接”处理。
编译器收到选项的指示编译源文件后,生成扩展名为“.obj”的目标文件。把多个目标文件结合,生成1个EXE文件的处理就是链接,运行链接的程序就称为链接器。

5)启动及库文件
目标文件记述的是同所有程序起始位置相结合的处理内容,称为程序的启动。
库文件把多个目标文件集成保存到一个文件中的形式。
链接器把需要的目标文件抽取出来,并同其他目标文件结合生成EXE文件。

2.可执行文件加载到内存的运行机制
1)可执行文件运行时的必要条件
资源管理器找到并双击EXE文件,就会把EXE文件的内容加载到内存中运行。

3.程序运行时内存上的栈和堆
1)程序加载时会生成栈和堆
栈是用来存储函数内部临时使用的变量,以及函数调用时所用的参数的内存区域。
堆是用来存储程序运行时的任意数据及对象的内存领域。

以上为本章所学内容,下章见!

标签:可执行文件,文件,有感,程序,第八章,编译器,内存,源代码
From: https://www.cnblogs.com/zyk0915-/p/18042242

相关文章

  • 读《程序是怎样跑起来的》十一、十二章有感
    我在第十一章明白了硬件的控制方法。在x86系列cpu用的汇编词汇中,通过IN指令来实现I/O输入,OUT指令来实现I/O输出。用来实现计算机主机和外围设备输入输出交互的IC称为I/O控制器或简称为I/O。所有连接计算机的外围设备都会分配一个I/O地址编号。IRQ指的是用来执行硬件中断请求的信号......
  • 《程序是怎样跑起来的》第十二章“让计算机“思考””
    读完本书的最后一章“让计算机“思考””,让我对程序有了更深入的了解,程序与我们的生活密不可分。程序的使用目的大体可以划分为两类。一类是大家作为工具来使用的程序。另外一个使用目的是用程序来代替执行人类的思考过程。用程序来表示人类的思考方式,用程序来表示人类的思考习惯......
  • 程序是怎样跑起来的第十一章观后感
    Window控制硬件时借助的是输人输出指令。其中具有代表性的两个输入输出指令就是IN和OUT。IN指令通过指定端口号的端口输入数据,并将其存储在CPU内部的寄存器中。OUT指令则是把CPU寄存器中存储的数据,输出到指定端口号的端口。计算机主机中,附带了用来连接显示器及键盘等外围设备的连......
  • 《程序是怎样跑起来的》第9章
    第八章主要讲操作系统与应用程序的关系,而看完本章后我觉得发明操作系统的发明是计算机史上一个伟大的里程碑,操作系统出现之前,是需要程序员来直接操作代码中要用的的硬件的,操作系统出现后,程序员就不用关注硬件的细节了,只面对操作系统就行了,硬件的统一由操作系统来完成,友好的图形操......
  • 《程序是怎样跑起来的》第10章
    《程序是怎样跑起来的》这本书的第十章为我揭示了程序运行的更深层次的奥秘,特别是通过汇编语言的角度。在此之前,我对于程序的理解主要停留在高级语言层面,如Python、Java等。然而,第十章让我深入到了程序的底层,与计算机硬件有了更紧密的联系。首先,我被汇编语言与本地代码之间的紧密......
  • 程序是怎样跑起来的第十章、十一章读后感
    第十章,了解到他为我们讲述了通过汇编语言来解析程序结构的方法。首先,我们知道了汇编语言与本地代码是一一对应的,把汇编语言转换为本地代码,就好像数学中三角函数中的度数和值一样。我感觉十章好像前面的汇总,在前面我们也看到函数的调用机制,在这函数的名称是函数的内存地址。这章也......
  • 《程序是怎么跑起来的》第6章
    本章节中,主要讲自己动手压缩数据并且压缩数据的原理。通过莫尔斯编码来看哈夫曼算法的基础哈夫曼算法的思想与摩尔斯码的思想类似,不是所有的内容都存入等长的二进制位中,而是把数据中经常出现的字符用尽可能短的二进制位数表示,较少出现的字符用较长的二进制位数表示。在计算机......
  • 《程序是怎样跑起来的》第7章
    第七章主要讲程序在怎样的环境下运行。一般来说,应用程序的运行环境是指操作系统的类型以及硬件(CPU、内存等)的类型和性能指标。运行环境=操作系统+硬件Windows克服了CPU以外的硬件差异不同操作系统的API不同FreeBSDPort帮你轻松使用源代码Ports机制是porting(移植)的意......
  • 《程序是怎样跑起来的 》 日矢泽久雄 第十二章
    我对硬件和软件之间的区别有了更清晰的认识。作者详细介绍了主要的硬件部件如CPU、控制器、运算器、输入设备和输出设备等,并讲解了它们各自的功能和工作方式。这使我明白,虽然计算机看起来只是一个黑盒子,但其内部的复杂性远远超过了我们的想象。我对输入指令和输出指令有了更深入......
  • 《程序是怎样跑起来的》第十一章读后感
    硬件性能设计控制。主要采取双重电路、双重读出和回波校验等方法。双重电路可执行双重计算并比较两个计算结果;双重读出即以两个阅读器分别阅读卡片、磁带,或随机存取媒体上的记录,并比较两个阅读操作的结果;回波校验即将数据送回原输出装置与其原始数据相比较,以校验接收装置所收到的......