首页 > 编程语言 >通过汇编语言了解程序的实际构成

通过汇编语言了解程序的实际构成

时间:2024-02-23 17:55:21浏览次数:45  
标签:汇编语言 代码 局部变量 程序 指令 源代码 构成

           1、会编语言的元代码转换成本地代码的方式称为汇编 2、本地代码转换成汇编语言的源代码的方式称为反汇编
       本地代码的指令中表示其功能的英文缩写称为助记符,而使用助记符的编程语言称为会编语言,通过查看会编语言编写的源代码就可以了解程序的本质。负责转换工作的程序称为汇编器,转换这一处理本身称为汇编。而在源代码转换成本地代码这个功能方面,汇编器和编译器是同样的。 我们还应知道用汇编语言编写的源代码和本地代码是一一对应的,因此本地代码也可以反过来转换成汇编语言的源代码该功能的逆变换程序称为反汇编程序,逆变换这一处理本身称为反汇编,我们还可以通过编译器输出会边缘的源代码。既然我们知道了汇编语言的源代码这一名词,那么到底什么是汇编语言的源代码呢?它就是由转换成本地代码的指令和针对汇编器的伪指令构成的。在这里伪指令的作用是负责把程序的构造及汇编的方法指示给汇编器,而伪指令在程序中围起来的部分是给构成程序的命令和数据的集合体,加上的一个名字而得到的,称为段定义。在程序中定义指的是命令和数据等程序的集合体的意思程序有多个段定义构成。
    汇编语言指令的语法结构是"操作码+操作数"(也存在只有操作码没有操作数的指令),其中操作码表示的是指令动作,操作数表示的是指令对象,因为汇编语言中存在多个操作数的情况,因此要用逗号把它们隔开。又因为操作码的形式很多,因此用何种操作码要CPU的种类决定。下图是一些汇编语言指令的功能:   

    此外,我们还需要了解CPU中的寄存器不仅仅具有存储指令和数据的功能,也有运算的功能,下图是一些寄存器的名称及主要功能:

而且在函数定义局部变量时所需要内存领域会被尽可能的分配在既存器中。因为与内存相比,使用既存器时访问速度会高很多,这样就可以更快的进行处理。局部变量利用寄存器是Borland C++编译器最优化的结果。
而对寄存器和内存进行数据存储的是mov指令,这一指令的两个操作数分别用来指定数据的存储和读出源。
     回顾:数据在栈中存储时,从内存的下层逐渐往上层累积读的时候是从上往下顺利进行的。 栈是存储临时数据的区域,其特点是通过push指令和pop指令进行数据的存储和读出。
最优化功能是编译器在本地代码上费尽工夫实现的目的是让编译后的程序运行速度更快文件更小。
函数的参数是通过栈来传递的返回值是通过寄存器来返回的。
C语言中在函数外部定义的变量称为全局变量,在函数内部定义的变量称为局部变量。其中全局变量可以参阅源代码的任意部分,而局部变量只能在定义该变量的函数数内进行参阅。那么为什么局部变量只能在定义该变量的函数内进行参阅呢?是因为局部变量是临时保存在寄存器和栈中的。


标签:汇编语言,代码,局部变量,程序,指令,源代码,构成
From: https://www.cnblogs.com/G-y-l-123/p/18030096

相关文章

  • 《程序是怎么跑起来的》第5章读书笔记
    第4张介绍了内存那么第5张就是磁盘。在开篇告诉了我们内存只主存而磁盘主要指硬盘。计算机中的储存器包括内存和磁盘储存在磁盘中的程序需要先加载到内存才能运行,不能在磁盘上直接运行。内存与磁盘的联系是非常密切的。第1个体现是磁盘缓存。磁盘缓存是一块内存空间,用于临时存放从......
  • 《程序是怎样跑起来的》——第9章 操作系统和应用的关系
    一、操作系统功能的历史1、在计算机中尚不存在操作系统的年代,完全没有任何程序,因此程序员就需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输人,这一过程非常麻烦。于是,有人开发出了仅具有加载和运行功能的监控程序,这就是操作系统的原型。(操作系统(Operat......
  • 《程序是怎样跑起来的》通过汇编语言认识程序的真面目
    汇编语言作为一种低级语言,与机器语言非常接近,它直接对应于计算机的指令集。通过阅读这一章,我了解到汇编语言中的指令是如何直接操作计算机的各个部件,如CPU、内存、输入输出设备等。这让我更加深刻地认识到,高级语言编写的程序最终都需要被转换为汇编语言或机器语言才能在计算机上运......
  • 《程序是怎么跑起来的》第4章读书笔记
    计算机是处理数据的机器,而处理对象的数据储存在内存和磁盘中。内存本质上是一种名为内存芯片的装置,内存芯片分为ram,rom等不同类型,但从外部来看,它们的基本原理是相同的内存芯片外部有引脚负责连接电源以及输入地址信号等等。内存芯片内部有很多能储存巴比特数据的容器,只要指定容器......
  • 程序是怎么跑起来的第七章
    操作系统和硬件决定了程序的运行环境,同一类型的硬件可以选择安装多宗操作,从程序运行环境这一角度来考量硬件时,CPU的种类是特别重要的参数系统,CPU只能解释其自身固有的机器语言。不同的CPU能解释得机器语言的种类也不同。机器语言的程序称为本地代码。文本文件在任何环境下都能显示......
  • 《程序是怎样跑起来的》程序在怎样的环境下运行
    读完这一章,我深刻感受到程序的运行环境是如此复杂,每一个组件、每一个步骤都关乎到程序的正常运行。CPU作为计算机的核心,负责执行程序的指令;内存则提供了程序运行所需的空间;而输入输出设备则为我们与程序之间的交互提供了可能。这些组件共同构成了一个完整的程序运行环境,确保了程序......
  • 《程序是怎样跑起来的》从源文件到可执行文件
    在这一章中,作者矢泽久雄首先为我们介绍了源文件的概念,即程序员使用某种编程语言(如C、C++、Java等)编写的原始代码文件。这些文件通常以文本形式存在,包含了程序的各种逻辑、数据结构以及函数调用等信息。然后,作者详细描述了编译器如何将这些源文件转换为可执行文件的过程。编译过程......
  • 《程序是怎样跑起来的》操作系统与应用程序的关系
    首先,作者强调了操作系统作为应用程序与硬件之间的桥梁的角色。在早期的计算机系统中,程序员需要直接使用机器语言编写程序来控制硬件。然而,随着计算机系统的复杂性不断增加,这种直接控制硬件的方式变得既繁琐又容易出错。因此,操作系统应运而生,它提供了一组统一的接口和抽象层,使得应......
  • 《程序是怎么跑起来的》第3章读书笔记
    经过前两章对计算机内容最基本的理解之后,就迎来了对计算机的计算,而计算机也不是万能的,它也会出现错误,那么就涉及到计算机在计算小数时会出现错误的原因,首先课题通过一个问题将0.1累加100次的结果不是10这一话题成功将读者引入进去。然后告诉了我们为什么在计算机中会这样子出错的......
  • 《程序是怎样跑起来的》第六章
    当我翻阅到“亲自尝试压缩数据”这一章节时,我被作者深入浅出的叙述和丰富的实践案例所吸引。这部分内容不仅是对数据压缩概念的讲解,更是一次思考与实践相结合的完整体验。阅读完毕后,我对于数据压缩技术的理解有了全新的认识,也对这项技术背后蕴含的智慧感到赞叹。本章重点介绍了压......