什么是汇编语言?
2020.03.28 -
汇编语言是为特定类型的处理器设计的低级编程语言。它可以通过从高级编程语言(例如C / C ++)编译源代码来产生,但也可以从头开始编写。可以使用汇编程序将汇编代码转换为机器代码。
由于大多数编译器将源代码直接转换为机器代码,因此软件开发人员通常在不使用汇编语言的情况下创建程序。但是在某些情况下,可以使用汇编代码来微调程序。例如,程序员可以用汇编语言编写特定的过程,以确保其尽可能有效地发挥作用。
尽管汇编语言在处理器体系结构之间有所不同,但它们通常包含相似的指令和运算符。以下是x86处理器支持的一些指令示例。
- MOV-将数据从一个位置移动到另一位置
- 添加-添加两个值
- SUB-从另一个值中减去一个值
- PUSH-将数据推入堆栈
- POP-从堆栈中弹出数据
- JMP-跳到另一个位置
- INT-中断进程

为什么ASM有用?
机器语言是一系列数字,人类不容易阅读。使用ASM,程序员可以编写几乎完全对应于机器语言的人类可读程序。
缺点是必须明确,详细地描述计算机的所有操作。优点是程序员可以最大程度地控制计算机的运行。
为什么ASM是“低级”语言?
汇编之所以被称为低级编程语言,是因为它告诉计算机要做的事情与计算机所做的事情之间(几乎)是一对一的关系。通常,汇编程序的一行最多包含一条用于计算机的指令。
ASM与“高级”语言有何不同?
高级语言提供了低级操作的抽象,使程序员可以将更多的精力放在描述他们想做的事情上,而不必在意如何做。以这种方式编程更方便,并且在牺牲底层控制的情况下使程序更易于阅读。
用高级语言编写的程序将永远无法与汇编语言编写的程序的原始速度和效率相匹配。高级语言的示例包括Python,Java,JavaScript,Clojure和Lisp。
什么是“中级”语言?
中级语言或低级语言提供了一些高级抽象,以使程序员的生活更轻松,同时仍提供对低级操作的访问。它们通常用于编写操作系统,因此有时也称为系统编程语言。
用中级语言编写的程序的性能与用汇编语言编写的程序一样好,或几乎一样好。中级编程语言的示例包括C,C ++,Ada,Nim和Rust。
ASM是可移植的吗?
不会。因为汇编语言与一种特定的计算机体系结构相关,所以它们不是可移植的。用一种汇编语言编写的程序需要完全重写才能在另一种机器上运行。
可移植性是高级语言的主要优点之一。C编程语言通常被称为“便携式程序集”,因为几乎所有现代系统体系结构都存在C编译器。用C编写的程序可能需要进行一些更改才能在另一台计算机上编译,但是核心语言是可移植的。
一般而言,语言是高级的,因此要在另一种体系结构上运行,需要进行的更改较少。最低级别的语言(机器语言和汇编语言)不可移植。
以下汇编语言可用于将数字3和4相加:
mov eax,3-将3加载到寄存器“ eax”中
mov ebx,4-将4加载到寄存器“ ebx”中,
添加eax,ebx,ecx-添加“ eax”和“ ebx”,并将结果(7)存储在“ ecx”
编写汇编语言是一个繁琐的过程,因为每个操作都必须在非常基本的级别上执行。尽管可能不一定需要使用汇编代码来创建计算机程序,但是学习汇编语言通常是计算机科学课程的一部分,因为它可以帮助您深入了解处理器的工作方式。