汇编语言(Assembly Language)简介

汇编语言(Assembly Language)简介

汇编语言是最接近于机器语言的编程语言。如果说机器语言是计算机操作的本质,那么汇编语言就是最最接近本质的语言。汇编语言操作直接面向硬件,所以,我们在使用汇编语言的时候,我们能够感知计算机的运行过程和原理,从而能够对计算机硬件和应用程序之间的联系和交互形成一个清晰的认识。汇编语言对于内存的操作都是基于内存地址的,而C语言中最令人头疼的指针概念,说白了就是内存的地址。

汇编语言, 即第二代计算机语言,用一些容易理解和记忆的缩写单词来代替一些特定的指令,例如:用"ADD"代表加法操作指令,"SUB"代表减法操作指令,以及"INC"代表增加1,"DEC"代表减去1,"MOV"代表变量传递等等。

汇编语言的指令都是二进制的文本形式,与机器语言——二进制指令是一一对应的关系。例如:


汇编语言只要还原成二进制,汇编语言就可以被 CPU 直接执行,所以它是低级语言。

  

学习汇编的目的,不是希望用它作软件开发。学习汇编能对计算机的运行机制有个透彻的了解:

主流的电子计算机使用二进制,计算机只认识 0和1,因为在电路中只有两种状态,要么通电要么断电,我们用数字表示这两种状态就是0和1,我们可以用0和1与计算机交流。

机器语言就是由0和1构成的语言,我们很难理解,几乎看不懂。而我们需要将这些复杂的机器语言(一堆0和1的数字)简化,就需要助计符(INC DEC MUL DIV等),也就是汇编语言。

现在汇编语言已不像其他大多数的程序设计语言一样被广泛用于程序设计,在今天的实际应用中,它通常被应用在底层硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序中都会需要汇编语言。学汇编可以有助于理解计算机和程序运行的本质,如搞清寄存器、内存地址及寻址等等。

CPU 的全称是 Central Processing Unit ,CPU 与计算机的关系就相当于大脑和人的关系。CPU 的核心是从程序或应用程序获取指令并执行计算。此过程可以分为三个关键阶段:提取,解码和执行。CPU 从系统的主存中提取指令,然后解码该指令的实际内容,然后再由 CPU 的相关部分执行该指令。

CPU 本身只负责运算,不负责储存数据。数据一般都储存在内存之中,CPU 要用的时候就去内存读写数据。但是,CPU 的运算速度远高于内存的读写速度,为了避免被拖慢,CPU 都自带一级缓存和二级缓存。基本上,CPU 缓存可以看作是读写速度较快的内存。

但是,CPU 缓存还是不够快,另外数据在缓存里面的地址是不固定的,CPU 每次读写都要寻址也会拖慢速度。因此,除了缓存之外,CPU 还自带了寄存器(register),用来储存最常用的数据。也就是说,那些最频繁读写的数据(比如循环变量),都会放在寄存器里面,CPU 优先读写寄存器,再由寄存器跟内存交换数据。寄存器在CPU中。内存在内存条中。

寄存器不依靠地址区分数据,而依靠名称。我们常常看到 32位 CPU、64位 CPU 这样的名称,其实指的就是寄存器的大小。32 位 CPU 的寄存器大小就是4个字节。

寄存器只能存放很少量的数据,大多数时候,CPU 要指挥寄存器,直接跟内存交换数据。

存储器按在计算机系统中的作用分类

主存储器(内存、Memory):由随机存储器(RAM)构成既可以从中读取数据,也可以写入数据。当机器关闭时,内存中的信息会 丢失。用于存放活动的程序和数据,它是程序与 CPU 进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存对计算机的影响非常大,只要计算机在运行中,CPU 就会把需要运算的保存在外存储器中的程序和数据调到主存中处理,当运算完成后 CPU 再将处理结果传送出来。

缓冲存储器(Cache):主要在两个不同工作速度的部件起缓冲作用。它位于内存和 CPU 之间,是一个读写速度比内存更快的存储器。当 CPU 向内存写入数据时,这些数据也会被写入高速缓存中。当 CPU 需要读取数据时,会直接从高速缓存中直接读取,当然,如需要的数据在Cache中没有,CPU会再去读取内存中的数据。

辅助存储器(外存储器):主要用于存放当前不活跃的程序和数据,其速度慢、容量大、每位价位低。

机器语言、汇编语言、高级语言的关系

机器语言:

计算机执行的二进制命令,都是0和1表示的,最早的计算机采用,通过直接输入二进制数,插拔电路板等实现,这种“编程”很容易出错。

汇编语言:

用助记符代替机器指令的操作码(如:ADD表示加法),汇编语言通过汇编器(Assembler)得到机器语言。不够直观,是一种低级语言,亦称为符号语言。

高级语言。

符合人们的习惯,也更容易理解和修改。高级语言(如:C/C++)经过编译器“翻译”(方法有两种,一种是解释,一种是编译)成目标程序后由计算机执行。

下图以 C 语言为例展示了一般程序的运行流程:

附录

汇编语言(Assembly language)实验环境搭建详解_软件开发技术爱好者的博客-CSDN博客_汇编语言实验环境

手把手教你学习汇编语言——从入门到起飞_发呆哥o_o ....的博客-CSDN博客_汇编语言学习

https://www.jianshu.com/p/90cae6902c00

汇编 - 教程_学习汇编|WIKI教程

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ARM汇编语言编程和架构是与ARM处理器相关的编程语言和计算机体系结构。 ARM汇编语言编程是使用ARM指令集进行编程的过程。ARM指令集是一种低级的机器语言,通过编写汇编指令可以直接控制ARM处理器执行特定的操作,例如加载和存储数据、算术运算和逻辑运算等。通过使用ARM汇编语言,程序员可以更细致地控制CPU和内存,从而提高程序的效率和性能。 ARM架构是ARM处理器的体系结构设计。ARM处理器是一种廉价、低功耗、高性能的处理器,广泛应用于移动设备(如手机和平板电脑)和嵌入式系统(如智能家居和汽车电子)。ARM架构采用了精简指令集计算(RISC)的设计思想,具有优化的执行效率和资源利用率。ARM架构还支持多核处理器和向量处理器等高级特性,以满足不同应用场景的需求。 ARM汇编语言编程和架构具有以下特点和优势: 1. 简单易学:ARM汇编语言语法简洁,易于学习和理解。 2. 灵活高效:ARM指令集提供了丰富的操作指令,允许程序员更精细地控制处理器和内存。 3. 低功耗高性能:ARM处理器采用了先进的微架构设计,具有较低的功耗和优异的性能。 4. 平台广泛:ARM处理器广泛应用于各种设备和系统,提供了丰富的开发工具和生态系统支持。 总之,ARM汇编语言编程和架构是掌握和应用ARM处理器的关键知识,对于开发高效、低功耗的嵌入式系统和移动应用具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值