首页 > 编程语言 >通过汇编语言了解程序内部

通过汇编语言了解程序内部

时间:2024-02-24 13:44:07浏览次数:27  
标签:操作数 内部 汇编语言 代码 程序 操作码 指令 源代码

本地代码不易理解,因而产生了一种想法,在各本地代码中附带表示其功能的英语单词缩写
例如,加法运算的本地代码中加add,这些缩写称为助记符,使用助记符的编程语言叫做汇编语言。但是即使是汇编语言,最终也需要转换成本地代码才能运行

负责转换工作的程序称为汇编器;转换这一处理称为汇编。

在将源代码转换成本地代码这个功能方面,汇编器和编译器是同样的。
用汇编语言编写的源代码,和本地代码一一对应。所以本地代码也可以转换成编程语言的源代码。 这个程序称为反汇编程序,这个处理为反汇编。

除了反汇编,还有其他方法得到汇编语言的源代码
比如:大部分C语言编译器,都可以利用C语言编写的源代码转换成汇编语言的源代码。编译器生成汇编语言的源代码。

汇编语言的源代码由两部分组成;(1)转换成本地代码的指令 (2)针对汇编器的伪指令

伪指令负责把程序的构造和汇编方法指示给汇编器。伪指令自身无法汇编转换成本地代码。
由伪指令segment和ends围起来的部分,是给构成程序的命令和数据的集合体加上一个名字得到的,称为段定义。 一个程序由多个段定义构成。

汇编语言中,1行表示对CPU的一个指令。 汇编语言的语法结构是“操作码+操作数”

操作码表示的是指令动作,操作数表示的是指令对象。 操作码和操作数罗列在一起的语法就是一个英文的指令文本。 操作码是动词 操作数是宾语
例如:Give me money Give是操作码 me和money是操作数
汇编语言中,存在多个操作数时,用逗号隔开。

使用何种形式的操作码,由CPU的种类决定。
本地代码加载到内存中才能运行,内存中存储着构成本地代码的指令和数据。
程序运行时,CPU会从内存中把指令和数据读出,然后将其存储在CPU的寄存器处理。
寄存器功能:存储 运算
指令中最常用的是对寄存器和内存进行数据存储的mov指令
mov指令的两个操作数,分别用来指定数据的存储地和读出源。
如果指定了【】围起来的内容,【】中的值就会被解释为内存地址;如果指定没有【】,则对该值进行处理。
对栈进行push和pop
栈通过push存储,pop读出
C语言中,函数外部定义的变量为全局变量。内部为局部变量
全局变量可以参阅源代码的任意部分,局部变量只能在定义该变量的函数参阅。

标签:操作数,内部,汇编语言,代码,程序,操作码,指令,源代码
From: https://www.cnblogs.com/zhhhhh/p/18030987

相关文章

  • 《程序是怎样跑起来的》第七章——程序是在何种环境下运行的
    本章讲解内容围绕操作系统和运行环境。以下是是本章大致内容的总结:运行环境=操作系统+硬件,不同操作系统之间不能相互沟通,硬件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、一个半角英数为一字......
  • 第10章通过汇编了解程序的实际构成
    汇编语言的源代码组成:由转换成本地代码的指令(操作码)与针对会汇编器的伪指令构成伪指令:负责把程序的构造及汇编的方法指示给汇编器,伪指令本身无法转换成本地代码。段定义:用来划定范围区域,是一个连续的内存空间,在程序中表示一段命令和数据等程序构成的集合体,一个程序由多个段构成......
  • 《程序是怎样跑起来的》第七章读后感
    这一章让我对不同操作系统的API有了更深入的理解。API是应用程序接口的缩写,它就像是操作系统和程序之间的桥梁,使得程序能够利用操作系统提供的各种功能。不同的操作系统可能有不同的API,这也导致了在不同操作系统上开发程序时需要做出相应的调整。关于虚拟机,我觉得它就像是一......
  • 程序是怎么跑起来的第三章
    在上一章学习了二进制的运算,在本章将学习计算机小数运算的方法,通常认知下,我们认为计算机是不会出现错误的,但实际上小数运算就是一个典型的例子,通常我们所知道的计算机的所有信息都用二进制形式来处理,但是使用二进制来表示整数和小数的方法却有很大不同,二进制转化为十进制,只需要将......
  • 陪玩程序源码,如何引导用户进行点赞操作?
    引导点赞我们需要让按钮做出一些视觉效果来引导用户进行点赞操作,那持续震动无疑是一种好的选择。//love.jsconstlikeBtn=document.getElementById('likeBtn');constheart=document.getElementById('heart')likeBtn.addEventListener('mousemove',()=>{heart.cl......
  • 《程序是怎样跑起来的》第六章读后感
    我是计应232班的赵精艺。第六章讲的主要是亲自尝试压缩数据。在正文前的几个问题中我知道了一些有关于本章的内容,并且了解到了可逆压缩与不可逆压缩的不同点:压缩后的数据能够复原的是可逆压缩,无法复原的是不可逆压缩。文件是以字节为单位保存的,文件是将数据存储在磁盘等存储媒介中......
  • 程序是怎样跑起来的第五章观后感
    读完第五章,我了解到了内存和磁盘之间的关系。磁盘缓存,是通过使用内存来提高磁盘访问速度的,虚拟内存是指把磁盘的一部分作为假想内存来使用的,一般来说,程序需要被解读出来,然后运行,如果不读入内存就无法运行这一机制,我们称为储存程序方式。由于WINDOWS具有多重任务,有时同时运行多个......