首页 > 其他分享 >第十章

第十章

时间:2024-02-29 21:00:43浏览次数:16  
标签:程序 汇编语言 第十章 代码 伪指令 寄存器 源代码

通过汇编语言了解程序的实际构成
1.汇编语言和本地代码是一一对应的
即使是用汇编语言编写的源代码, 最终也必须要转换成本地代码才能运行。 负责转换工作的程序称为汇编器, 转换这一处理本身称为汇编。 在将源代码转换成本地代码这个功能方面, 汇编器和编译器是同样的。用汇编语言编写的源代码, 和本地代码是一一对应的。因而,本地代码也可 以反过来转换成汇编语言的源代码。 持有该功能的逆变换程序称为反汇编程序, 逆变换这一处理本身称为反汇编
哪怕是用C语言编写的源代码,编译后也会 转换成特定CPU用的本地代码。 而将其反汇编的话, 就可以得到汇编语言的源代码, 并对其内容进行调查。不过,本地代码变换成 C语言源代码的反编译, 则要比反汇编 困难。这是因为, C语言的源代码同本地代码不是一一对应的,因此完全还原到原始的源代码是不太可能的
2.不会转换成本地代码的伪指令
汇编语言的源代码, 是由转换成本地代码的指令( 后面讲述的操作码)和针对汇编器的伪指令构成的。 伪指令负责把程序的构造及汇编的方法指示给汇编器(转换程序)。 不过伪指令本身是无法汇编转换成本地代码的。这里我们把代码清单 10-2中用到的伪指令部分摘出。
由伪指令segment和ends围起来的部分, 是给构成程序的命令和数据的集合体加上一个名字而得到的, 称为段定义 ①。 段定义的英文表达segment具有“区域”的意思。在程序中, 段定义指 的是命令和数据等程序的集合体的意思。 一个程序由多个段定义构成。
3.寄存器是CPU中的存储区域。 不过,寄存器并不仅仅具有存储指令和数据的功能,也有运算功能。 寄存器的名称会通过汇编语言的源代码指定给操作数。 内存中的存储区域是用地址编号来区分的。 CPU内的寄存器是用eax及ebx这些名称来区分的。此外, CPU内部也有程序员无法直接操作的寄存器。例如, 表示运算结果正负及溢出状态的标志寄存器及操作系统专用的寄存器等, 都无法通过程序员编写的程序直接进行操作。

标签:程序,汇编语言,第十章,代码,伪指令,寄存器,源代码
From: https://www.cnblogs.com/caoqing040212/p/18045463

相关文章

  • 读《程序是怎样跑起来的》第十章有感
    我在第十章通过汇编语言了解了程序的实际构成。汇编语言是通过利用助记符来记述程序的。使用汇编器这个工具来进行汇编,通过反汇编,得到人们可以理解的代码。在高级编程语言的源代码中,即使指令和数据在编写时是分散的编译后也会在段定义中集合汇总起来。在汇编语言中,通过跳转指令,可......
  • 《程序是怎样跑起来的》第十章读后感
    第十章为通过汇编语言认识到程序的真面目,在汇编语音中助记符是来表示本机代码功能的英文缩写,而汇编一次是讲将汇编语言源代码转换成本机代码,而反汇编则是讲本机代码换为汇编语言源代码,汇编源文件的扩展名为.asm,但是在Linux中主要为.s,而汇编源代码指令是有两种为伪指令与注释,伪指令......
  • 《程序是怎样跑起来的》第十章
    在本章中,我被作者引导进入了汇编语言的世界,从而更加清晰地了解了程序的实际构成。汇编语言,作为机器语言和高级语言之间的桥梁,为我们提供了一个独特的视角来观察程序是如何从高级抽象转化为计算机可以理解的指令。接下来,书中详细解释了汇编语言的一般格式,即“操作码+操作数”。这......
  • 《程序是怎样跑起来的》第十章
    汇编语言和本地代码是一一对应的,计算机CPU能直接解释运行的只有本地代码程序。高级语言等编写的源代码,需要通过各自的编译器编译后,转换成本地代码。通过调查本地代码的内容,可以了解程序最终是以何种形式来运行的。如果直接打开本地代码来看的话,只能看到数值的罗列。即使是用汇编......
  • 《程序是再怎样跑起来的》第十章
    前些章讲过CPU只能识别本地代码,但如果直接看本地代码会发现根本看不懂,因而诞生了汇编语言,汇编语言也就是在本地代码上加上相关的助记符,例如在加法运算的本地代码中加上add(addition的缩写),汇编语言与本地代码是一一对应的,但想要运行汇编语言也得将源代码转换成本地代码,而负责这一工......
  • 读《程序是怎样跑起来的》第十章有感
    第十章——通过汇编语言了解二程序的实际构成1.汇编语言和本地代码是一一对应的汇编语言:在各本地代码中,附带上表示其功能的英语单词缩写,这些缩写称为助记符,使用助记符的编程语言称为汇编语言。*通过查看汇编语言编写的源代码了解程序本质,同查看本地代码的源代码是同一级别。汇......
  • 《程序是怎样跑起来的》第十章读后感
    《程序是怎样跑起来的》这本书的第十章主要围绕汇编语言和程序运行机制展开。这一章深入介绍了汇编语言与本地代码之间的对应关系,以及如何通过汇编语言来解析程序的结构。在第十章中,还提及了函数调用机制,指出在汇编语言中,函数名实际上代表的是函数所在内存地址,这一点对于理解......
  • 《程序是怎样跑起来的》第十章
    读书笔记:10.1:1.汇编语言是使用助记符来编写程序的。1.汇编需要使用汇编器来完成2.通过反汇编可以得到人类能够理解的源代码。3.汇编语言源文件的扩展名在Windows中主要是.asm,在Linux中主要是.S。4.在高级编程语言的源代码中,指令和数据都是分散在各个位置的,但在编译后它们会被......
  • 《程序是怎么跑起来的第十章》
    《程序是怎样跑起来的》这本书的第10章主要讲的是程序的运行过程包括以下几个步骤:加载:当程序被启动时,操作系统会将程序的代码和数据从硬盘加载到内存中。初始化:程序在内存中加载完成后,程序的初始化代码会被执行,这通常包括为程序的数据成员分配空间,设置默认值等。执行:程序的主......
  • 《程序是怎样跑起来的》第十章读书笔记
    读完第十章后,我对文件和输入输出有了更全面的认识。这一章详细介绍了文件的概念、文件的操作以及输入输出的处理方式。我了解到文件作为数据的持久存储介质,在程序中起着重要的作用。通过文件,我们可以将数据长期保存下来,并在需要时进行读取和处理。文件的管理和操作需要注意文件的......