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

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

时间:2024-02-24 16:11:38浏览次数:20  
标签:文件 EXE 代码 程序 第八章 编译器 本地 链接 怎样

第八章,从源文件到可执行文件。本章介绍了用c语言编译器来编写Windows用的可执行文件的示例。8.1节,计算机只能运行本地代码。任何编程语音编写的源代码都要翻译为本地代码才能被CPU解析运行。8.2节,本地代码的内容。本地代码的内容就是各种数值的罗列。8.3节,编译器负责转换源代码。编译器读入代码后经过语法解析、句法解析、语义解析生成本地代码。同样的源代码可以转换成使用于不同处理器的本地代码。交叉编译器能够生成和运行环境中CPU不同的CPU所使用的本地代码的。8.4节,仅靠翻译是无法得到可执行文件的。因为本地文件无法直接运行,可以运行的EXE文件编译之后还需要进行“链接”处理。链接指的是把多个目标文件结合生成一个EXE文件的处理,运行连接的程序就称为链接器。8.5节,启动及库文件。链接器指定库文件后就会从中把需要的目标文件抽掉出来,并同其他目标文件结合生成EXE文件。链接器出现错误信息,表示无法解析外部符号,而外部符号指其他目标文件中的变量或函数。sprintf()函数不是通过源代码形式,而是通过库文件形式和编译器一起提供的,这样的函数则称为标准函数。8.6节DLL文件及导入库。在Windows中,API的目标文件并不是存在通常的库文件中,而是储存在名为DLL文件的特殊文件库中。类似于import32.lib这样的库文件成为导入库。而静态链接库则与此相反,储存着目标文件的实体。最后通过图例清楚的显示出Windows中编译和链接机制。8.7节,可执行文件运行时的必要条件。EXE文件中给变量及函数分配了虚拟的内存地址,链接器会在文件开头追加转换内存地址所需的必要信息即再配置信息。8.8节,程序加载时会生成键和堆。EXE文件中并不存在栈及堆的组。栈和堆需要的内存空间是在文件加载到内存后开始运行时得到分配的。栈和堆的相似之处在于他们的内存空间都是在程序运行时得到申请分配的。

标签:文件,EXE,代码,程序,第八章,编译器,本地,链接,怎样
From: https://www.cnblogs.com/Du1209/p/18031186

相关文章

  • 《程序是怎样跑起来的》第7章读书笔记
    第7章就把重点放到了这本书程序是怎么跑起来的重点上,但同时也难理解了许多。我们知道的是程序要在特定的运行环境上才能运行,而运行环境等于操作系统加硬盘,每个程序都有其对应的运行环境操作系统和硬件决定了程序的运行环境,还需要知道的是,在将硬件作为程序运行环境考虑是CPU的类型......
  • 《程序是怎样跑起来的》第四章
    内存的构造与工作方式,内存的指针,栈和列队,链表的追加与删除以及二叉查找树是个人认为的本章主要内容。首先是内存的构造与工作方式,内存是由内存集成电路构成并带有大量引脚,这些引脚负责内存的电源,地址信号,数据信号以及用来输入输出的控制信号;内存有DRAM,SRAM,ROM和RAM等多种类型内......
  • 《程序是怎样跑起来的》第6章读书笔记
    前面讲述了内存跟磁盘,而内存跟磁盘里面的储存量也是有限的,那么我们就需要去压缩数据,而数据该怎么压缩呢?第6章就为我们介绍了。首先要了解文件中储存数据的格式文件是在磁盘等储存媒体中储存数据的一种形式,程序是以字节为单位向文件中储存数据的储存在文件中的数据。如果表示字符,那......
  • 通过汇编语言认识程序的真面目
    汇编语言是使用助记符来编写程序的。人们发明了一种方法,为每个本机代码的指令分配一个英语缩写来表示其功能。这些缩写称为助记符,使用助记符的编程语言称为汇编语言。即使是用汇编语言编写的源代码,最终也必须转换成本机代码才能运行。用来完成这种转换的程序称为汇编器,这个转换的......
  • 《程序是怎样跑起来的》第十一章
    这一章主要讲述了高级编程语言与计算机底层硬件之间的交互过程,让我意识到编程不仅仅是编写代码那么简单。我逐渐理解了从高级语言编写的代码到计算机底层硬件执行的指令之间的转换过程。这让我对编程思维有了全新的认识。第十一章还涉及了现代计算机科学知识的全面梳理,包括计算......
  • 通过汇编语言了解程序内部
    本地代码不易理解,因而产生了一种想法,在各本地代码中附带表示其功能的英语单词缩写例如,加法运算的本地代码中加add,这些缩写称为助记符,使用助记符的编程语言叫做汇编语言。但是即使是汇编语言,最终也需要转换成本地代码才能运行负责转换工作的程序称为汇编器;转换这一处理称为汇编。......
  • 《程序是怎样跑起来的》第七章——程序是在何种环境下运行的
    本章讲解内容围绕操作系统和运行环境。以下是是本章大致内容的总结:运行环境=操作系统+硬件,不同操作系统之间不能相互沟通,硬件CPU只能解释自身固有的机器语言,不同CPU能解释的机器语言的种类不同。机器语言的程序称为本地代码,而我们用各种语言编写的代码,在编写时仅仅只为文本文件......
  • 程序是怎么跑起来的第四章
    本章内容学习对内存有了更加深刻的了解,首先数据类型其实就是占据怒存区域的大小和存储在该内存区域的数据类型,LIFO就是栈的数据结构,而指针就是用于存储内存址的变量,栈是先入后出的方式的数据结构,内存实际上就是一种名为IC的电子元件,内存IC有多种用于输出的大量引脚,IC的引脚,VC......
  • 《程序是怎样跑起来的》——第11章 硬件控制方法
    一、应用和硬件1、在用C语言等高级编程语言开发的Windows应用中,大家很少能接触到直接控制硬件的指令。这是因为硬件的控制是由Windows全权负责的。Windows提供了通过应用来间接控制硬件的方法。利用操作系统提供的系统调用功能就可以实现对硬件的控制。示例:应用通过操作系统间接......
  • 《程序是怎样跑起来的》第六章——尝试亲自压缩数据
    回答章前问题:1、字节,一字节等于八位2、DOC和TXT肯定不是,DOC是word文档的后缀,TXT是文本文件的后缀。答案是LZH。(压缩文件扩展名)3、?      注:不会,问题:数据的值*循环次数来表示的压缩方法是RLE算法还是哈夫曼算法? (什么是RLE算法?哈夫曼算法?)4、一个半角英数为一字......