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

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

时间:2024-02-26 19:22:54浏览次数:24  
标签:文件 EXE 代码 程序 第八章 编译器 源代码 CPU 怎样

上一章提到了源代码,源代码在任何情况下都能够编译和显示,但它并不能直接运行,因为CPU只能够解释和执行的代码叫做本机代码,所以使用源代码时都会转换成本机代码被CPU理解后运行。
我们对EXE程序进行转储后,可以得知本机代码的本质就是数值序列其中的每个值都代表某个指令和数据。其中转储是将文件内容按1字节2位十六进制的形式显示出来。
负责将高级语言编写的源代码翻译成本机代码的程序叫做编译器,编译器会读取源代码的内容将其翻译成本机代码,可以理解为编译器中有一张源代码和本机代码的对应表。CPU的类型不同对应的本机代码也不同所以不同类型的CPU使用的编译器也不同。编译器的本质也是一种程序,所以也有对应的运行环境,当编译器本身运行在一种CPU上却可以编写另一种CPU的代码,这种编译器被称为交叉编译器。
但编译后并不是可以直接运行的EXE文件而是包含本机代码的目标文件,因为缺少了一些包含函数的目标文件,只需将所有必要的目标文件链接起来就可以生成EXE文件,将多个目标文件的拼接在一起生成一个EXE文件的过程称为链接,用于完成这一操作的程序称为链接器。
有些通用代码需要连接在所有代码的开头,这些代码被称为启动代码
还有一些文件叫做库文件,库文件有多个目标文件打包而成而不包含在源代码中的函数反而包含在库文件之中的函数叫做标准函数。使用库文件有两个好处,一个是指定时方便,另一个则是可以隐藏标准函数的源代码。windowsAPI也是一些函数,但这种函数并不是以库的形式存放的,而是以静态链接库与动态链接库存在的。
以上是如何生成EXE文件,在EXE五年间中变量和函数被分配的内存地址是虚拟的,在运行时将会转为实际,链接器会在文件开头记录需要进行转换的各个位置,这些信息被称为重定位信息。

标签:文件,EXE,代码,程序,第八章,编译器,源代码,CPU,怎样
From: https://www.cnblogs.com/lyf666/p/18035008

相关文章

  • 《程序是怎样跑起来的》第六章读后感
    《程序是怎样跑起来的》第六章讲述了尝试压缩数据,其中包括文件以字节为单位保存,RLE算法的机制,RLE算法的缺点,通过摩尔斯编码来看哈夫曼算法的基础,用二叉树实现哈弗曼编码,哈夫曼算法能够大幅提升压缩比率,可逆压缩和飞科你压缩七个章节,在这一章中我学到了,文件是以字节为单位保存的,文......
  • 《程序是怎样跑起来的》第七章
    本章主要是对程序运行环境的讲述,同时也简要介绍了本地代码,源代码以及通过使用虚拟机来获得更多的环境首先我们要了解应用程序的运行环境到底指的是什么,同样的应用程序可以在不同的环境下运行吗,为什么?应用程序的运行环境就等于操作系统加上硬件系统。一般来说同一个应用程序无法......
  • 《程序是怎么跑起来的第五章》
    《程序是怎样跑起来的》这本书的第五章主要讨论了内存和磁盘的关系,以及如何通过优化内存和磁盘的使用来提高程序的性能。以下是一些关键点:内存和磁盘是计算机中的两种主要存储设备。它们的主要区别在于速度和容量。内存比磁盘更快,但容量更小。因此,程序在运行时通常会将部分数据加......
  • 程序是怎样跑起来的第六章读后感
    第六章主要讲解的是文件的压缩。文件是将数据存储在磁盘等存储媒介中的一种形式,程序文件中存储数据的单位是字节。文件的大小之所以用××KB、××MB等来表示,就是因为文件是以字节(B=字节)为单位来存储的。文件就是字节数据的集合。用1字节(=8位)表示的字节数据有256种,用二进......
  • 《程序是怎样跑起来的》第七章读后感
    《程序是怎样跑起来的》第七章讲述了程序实在何种环境中运行的,其中包括运行环境=操作系统+硬件,windos克服了CPU以外的硬件差异,不同操作系统的API不同,FreeBSDPort帮你轻松使用源代码,利用虚拟机获得其他操作系统环境,提供相同运行环境的Jave虚拟机,Bios和引导七个章节,其中我学到了通常......
  • 《程序是怎样跑起来的》第三章读后感
    《程序是怎样跑起来的》第三章主要讲述了计算机进行小数运算时出错的原因,其中包括将0.1累加100次也得不到10,用二进制数表示小数,计算机运算出错的原因,什么是浮点数,正则表达式和EXCESS系统,在实际的程序中进行确认,如何避免计算机计算出错,二进制数和十六进制数八个章节。读了这一章后......
  • 第七章 程序是在何种环境中运行的
    运行环境=操作系统+硬件,程序中包含着运行环境这一内容,操作系统和硬件决定了程序的运行环境。同一类型的硬件可以选择安装多种操作系统。从程序的运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数。CPU只能解释其自身固有的机械语言,不同的CPU的只是机器人的种类也是不同的。......
  • 《程序是怎样跑起来的》第九章读后感
    《程序是怎样跑起来的》第九章主要讲的是操作系统和应用的关系。首先,他先讲述了操作系统功能的历史。这一章节详细介绍了程序在内存中的加载方式、运行机制以及它们如何与硬件设备进行交互。我了解到程序在被执行之前,需要被操作系统加载到内存中。这个过程涉及到程序代码和数据的......
  • 《程序是怎样跑起来的》——第十二章读后感
    一:1.在机器学习中,我们使用学习程序让计算机读取大量数据并根密数据特征自己进行学。2.本章中,笔者会介绍于写数字识别这个分类问题的实例。具体来说就是对于写数字图像数据进行识别,并将其分类为数字0~9。3.本章中,针对手写数字识别问题,我们会使用支持向量机算法。4.本章中,我们会......
  • 程序员软件著作权的归属如何确定?
    程序员软件著作权的归属如何确定?跳过文章,直接获取专业解读?来源:律图小编整理 · 2023.12.14 · 1869人看过导读:程序员软件著作权的归属的确定,是需要根据开发软件的程序员与单位之间有无合同来确定的。简单来讲,软件著作权在软件创作完成后即可获得,就是常说的进行的著作权登......