汇编语言定义

什么是汇编语言?

汇编语言是一种旨在与计算机硬件直接通信的低级编程语言。与由二进制和十六进制字符组成的机器语言不同,汇编语言被设计为可供人类阅读。

汇编语言等低级编程语言是计算机底层硬件与编写现代软件程序的高级编程语言(如 Python 或 JavaScript)之间的必要桥梁。

关键要点

  • 汇编语言是一种将高级语言翻译成机器语言的编程语言。
  • 它是软件程序与其底层硬件平台之间的必要桥梁。
  • 汇编语言依靠语言语法、标签、运算符和指令将代码转换为可用的机器指令。
  • 汇编语言可以通过单遍或多遍汇编器,每种汇编器都有特定的用途和好处。
  • 今天,汇编语言很少被直接编写,尽管它们仍然在一些小众应用程序中使用,例如在性能要求特别高的情况下。

汇编语言如何工作

从根本上说,计算机执行的最基本指令是二进制代码,由 1 和 0 组成。这些代码直接转化为通过计算机物理电路的电流的“开”和“关”状态。从本质上讲,这些简单的代码构成了“机器语言”的基础,这是一种最基本的编程语言。

当然,没有人能够通过显式编程 1 和 0 来构建现代软件程序。相反,人类程序员必须依赖各种抽象层,这些抽象层可以让自己以对人类更直观的格式表达他们的命令。

具体来说,现代程序员使用所谓的“高级语言”发出命令,这些语言利用直观的句法,例如整个英语单词和句子,以及诸如“and”、“or”和“else”等逻辑运算符。熟悉日常使用。

然而,最终这些高级命令需要被翻译成机器语言。程序员不是手动这样做,而是依靠汇编语言,其目的是在这些高级语言和低级语言之间自动转换。第一种汇编语言是在 1940 年代开发的,尽管现代程序员和现代自然语言处理器很少花时间处理汇编语言,但它们仍然对计算机的整体功能至关重要。

在计算的早期,系统编程和应用程序编程都将完全使用汇编语言进行。如果没有汇编语言,我们今天使用的许多现代计算机和更高级别的语言就不可能实现。

汇编语言的组成部分

句法

当用任何程序语言编写任何代码时,必须遵循一个可观察的、特定的规则顺序,以允许编译器无错误地执行代码。这些规则被定义为语法,它们包含诸如允许字符的最大数量、代码行必须以什么字符开头或某些符号“即分号”的含义等标准。

标签

标签是表示存储指令或数据的地址的符号。它的目的是在语句中引用时充当目的地。标签可以在任何可以在汇编语言中使用地址的地方使用。符号标签由标识符后跟冒号组成,而数字标签由单个数字后跟冒号组成。

运营商

也称为命令,运算符是出现在标签字段之后的逻辑表达式。此外,它前面必须至少有一个空白字符。运算符可以是操作码或指令。操作码直接对应机器指令,操作码包括与指令相关的任何寄存器名称。或者,指令操作码是汇编器已知的指令。

指示

指令是给汇编器的指令,告诉汇编过程中必须发生什么动作。指令具有为变量声明或保留内存的重要性;这些变量可以稍后在流程中调用以执行更多动态功能。指令也用于将程序分成不同的部分。

汇编语言宏是一种模板鞋格式,呈现一系列或模式的语句。这个汇编语言语句序列可能对多个不同的程序是通用的。宏工具用于解释宏定义,而宏调用被插入到源代码中,其中“正常”汇编代码将代替宏语句集。

助记符

助记符是操作的缩写。将助记符输入到每个汇编程序指令的操作码中,以指定一个缩短的“操作码”,该“操作码”代表更大的完整代码集。例如,助记词“乘以二”有一套完整的代码来执行助记词。

高频交易

今天,汇编语言仍然是计算机科学专业学生学习的主题,以帮助他们了解现代软件如何与其底层硬件平台相关联。在某些情况下,程序员必须继续用汇编语言编写,例如当对性能的要求特别高时,或者当所讨论的硬件与任何当前的高级语言不兼容时。

与金融相关的一个例子是一些金融公司使用的高频交易 (HFT) 平台。在这个市场中,交易的速度和准确性对于 HFT 交易策略证明有利可图至关重要。因此,为了在竞争中获得优势,一些高频交易公司直接用汇编语言编写交易软件,从而无需等待高级语言的命令被翻译成机器语言。

许多人认为汇编语言的学习曲线最陡峭,并且是最难学习的计算语言。

的优点和缺点

汇编语言的执行速度通常比高级语言快。汇编语言代码的插入删除组件相对容易,与其他类型的语言相比,汇编语言通常需要更少的指令来完成任务。

想要更好地控制他们的计算机的程序员也经常使用汇编语言,因为汇编语言允许您直接操作您的硬件。由于其速度和重要性,一些程序是专门使用汇编语言编写的,因为代码通常可以保持较小。

汇编语言确实有几个缺点。用汇编语言编写的长程序通常需要较大的计算能力,不能在小型计算机上运行。有些人可能会发现汇编语言的语法更难记住,并且使用汇编语言进行编码可能需要更长的时间,因为它更复杂。此外,汇编语言通常不能在不同品牌的不同计算机之间移植。与切换公司时员工福利的损失类似,语言无法无缝翻译到不同的计算机。

优点
  • 与其他语言相比,执行可能更简单

  • 与其他语言相比,执行通常更快

  • 允许直接控制硬件

  • 与其他语言相比,代码可能会更小

缺点
  • 与高级语言相比,编程可能更具挑战性

  • 汇编语言的语法很困难

  • 机器之间不可移植

汇编器的类型

汇编语言必须使用汇编程序翻译成机器语言。有两种主要类型的汇编器。

单程汇编器扫描一个程序一次并生成一个等效的二进制程序。这种类型的汇编器通过在助记码表中查找代码来验证汇编语言代码。单遍汇编器通常比多遍汇编器快,而且通常不需要构造任何中间代码。

多遍汇编器意味着汇编器使用多遍。多遍汇编器在第一遍中创建一个包含每个符号及其每个值的表,然后在以后的遍中使用该表来生成新代码。每个单独的通道通常处理不同的特定任务。尽管通常速度较慢,但​​具有模块化结构的多通道组装器通常可以用于不同的机器。

汇编语言代码示例

下面是 Netwide Assembler (NASM) 汇编语言代码的示例。

汇编语言代码示例。

洛约拉马利蒙特大学

在此示例中,代码末尾的 SYSCALL 指令触发了存储操作系统服务的内存部分。然后,代码 RAX 用于调用要编写的代码,然后 RDI 退出。SYSCALL 函数被使用两次来调用操作系统,并在代码完成和退出时向系统指示。

什么是汇编语言的例子?

最常用的汇编语言包括 ARM、MIPS 和 x86。

C++ 是汇编语言吗?

C++ 不包含汇编代码。C++ 计算语言由 C++ 代码组成,编译器将其翻译成可执行的机器代码。

Python 是一种汇编语言吗?

Python 比汇编语言更先进。汇编语言被认为是低级语言,而高级语言(如 C、Java 或 Python)使用 0 和 1 代替数字、符号和缩写。

今天如何使用汇编语言?

尽管与更高级的语言相比被认为是低级语言,但仍使用汇编语言。汇编语言用于直接操作硬件、访问专用处理器指令或评估关键性能问题。这些语言还用于利用它们相对于高级语言的速度优势来进行时间敏感的活动,例如高频交易。

底线

汇编语言是低级代码,它依赖于使用编码语言输入的指令与机器如何解释代码指令之间的密切关系。使用将输入转换为机器可识别指令的汇编程序将代码转换为可执行操作。尽管在计算的早期很流行,但许多大型系统使用更高级的语言。