汇编语言列表

更新时间:2022-08-25 13:40

汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符(memoni)代替机器指令的操作码,用地址符号(symbol)或标号(label)代替指令或操作数的地址,如此就增强了程序的可读性并且降低了编写难度,像这样符号化的程序设计语言就是汇编语言,因此也称为符号语言。

汇编语言

汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符(memoni)代替机器指令的操作码,用地址符号(symbol)或标号(label)代替指令或操作数的地址,如此就增强了程序的可读性并且降低了编写难度,像这样符号化的程序设计语言就是汇编语言,因此也称为符号语言。使用汇编语言编写的程序,计算机不能直接识别,还要由汇编程序转换成机器指令。汇编程序将符号化的操作代码组装成处理器可以识别的机器指令,这个组装的过程称为组合或者汇编。汇编语言是低级语言。

汇编是把汇编语言书写的程序翻译成与之等价的机器语言程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,由汇编执行指令和汇编伪指令组成。采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编得到的目标程序占用内存较少,运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。汇编程序包括简单汇编程序、模块汇编程序、条件汇编程序、宏汇编程序和高级汇编程序。

汇编程序的工作过程如下:首先输入汇编语言源程序。其次,检查语法的正确性,如果正确,则将源程序翻译成等价的二进制或浮动二进制的机器语言程序,并根据用户的需要输出源程序和目标程序的对照清单;如果语法有错,则输出错误信息,指明错误的部位、类型和编号。最后,对已汇编出的目标程序进行善后处理。

汇编语言是直接面向处理器( processor)的程序设计语言。处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。每一种处理器都有自己可以识别的一整套指令,称为指令集。处理器执行指令时,根据不同的指令采取不同,的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其他外围电路的工作状态。

人类最容易接受自己每天都使用的自然语言。为了使机器指令的书写和理解变得容易,需要借鉴自然语言的优点,为此就引入了汇编语言。汇编语言使用符号来代表不同的机器指令,而这些符号非常接近于自然语言的要素。基本上,汇编语言里的每一条指令都对应着处理器的一条机器指令。

汇编语言包括两个部分:语法部分和编译器。语法部分提供与机器指令相对应的助记符,方便指令的书写和阅读。当然,汇编语言的符号可以被人类接受,但不能被处理器识别,为此,还要由汇编语言编译器将这些助记符转换成机器指令。

根据应用领域的不同,处理器的种类繁多,比如用于工业控制和嵌入式计算的Z80、MC68000和MCS-51.广泛应用于个人计算机的Intel x86系列,以及基于ARM体系结构的处理器,包括苹果公司在内的大企业都是ARM的客户。事实上,今天的ARM是最受欢迎的32位嵌入式处理器,而且,今天的ARM处理器比Intel奔腾系列卖得还多,基本上是3:1的比例。

不同的处理器有不同的指令集。正是因为这个原因,每一种处理器都会有自己专属的汇编语言语法规则和编译器。即使是同一种类型的处理器,也可能拥有不同的汇编语言编译器。一个明显的例子是Intel x86系列的处理器,围绕它就开发出好多种编译器来,如MASMNASM、FASM、TASMAT&T等,而且每一种编译器都使用不同的语法。

汇编程序

汇编程序按其功能和结构可分为简单汇编程序、模块汇编程序、条件汇编程序、宏汇编程序和高级汇编程序等。

(1)简单汇编程序。其特点是经过翻译后的机器语言目标程序的地址是绝对的,可直接放在内存中执行,也称为“装入并执行”式汇编程序。这种工作方式在内存空间组织上受到很大限制。

(2)模块汇编程序。可提供设计、编码和调试不同程序模块的能力,每个汇编后的程序模块称为目标模块,它们的地址是相对的,可用连接装配程序把多个目标模块组成一个可执行的程序。

(3)条件汇编程序。具有选择汇编某些程序段的功能。这种汇编程序通常具有“条件转移”等伪指令,以便用户编写选择条件。

(4)宏汇编程序。具有宏加工功能的汇编程序。可以用它定义含参数的程序段,在使用的位置上调用它们.汇编时将进行宏(指令)展开,把宏定义所预先定义的指令目标代码插在该位置上。

(5)高级汇编程序。具有控制结构(如条件语句、循环语句以至含有函数和过程等)的汇编程序。它能在保持目标程序质量高的同时.吸收高级语言的优点,提高可读性。

汇编语言优缺点

优点

(1)因为用汇编语言设计的程序最终被转换成机器指令,故能够保持机器语言的一致性以及直接、简捷的特点,并能像机器指令一样访问和控制计算机的各种硬件设备,如磁盘存储器CPUI/O端口等。使用汇编语言,可以访问所有能够被访问的软硬件资源。

(2)汇编语言目标代码简短,占用内存少,执行速度快,是高效的程序设计语言,经常与高级语言配合使用,以改善程序的执行速度和效率,弥补高级语言在硬件控制方面的不足,应用十分广泛。

缺点

(1)汇编语言是面向机器的,处于整个计算机语言层次结构的底层,故被视为一种低级语言,通常是为特定的计算机或系列计算机专门设计的。不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性。

(2)难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生错误,难于调试。

(3)使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。

历史上,汇编语言曾经是非常流行的程序设计语言之一。随着软件规模的增长,以及随之而来的对软件开发进度和效率的要求,高级语言逐渐取代了汇编语言。但即便如此,高级语言也不可能完全替代汇编语言的作用。就拿Linux内核来讲,虽然绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码。由于这部分代码与硬件的关系非常密切,即使是C语言也会显得力不从心,而汇编语言则能够很好地扬长避短,最大限度地发挥硬件的性能。

首先,汇编语言的大部分语句直接对应着机器指令,执行速度快,效率高,代码体积小,在那些存储器容量有限,但需要快速和实时响应的场合比较有用,比如仪器仪表和工业控制设备中。其次,在系统程序的核心部分,以及与系统硬件频繁打交道的部分,可以使用汇编语言。比如操作系统的核心程序段、I/O接口电路的初始化程序、外部设备的低层驱动程序,以及频繁调用的子程序、动态连接库、某些高级绘图程序和视频游戏程序等。再次,汇编语言可以用于软件的加密和解密、计算机病毒的分析和防治,以及程序的调试和错误分析等各个方面。最后,通过学习汇编语言,能够加深对计算机原理和操作系统等课程的理解,能够感知、体会和理解机器的逻辑功能,为理解各种软件系统的原理打下技术理论基础,也为掌握硬件系统的原理打下实践应用基础。

汇编语言的特点

(1)机器相关性。这是一种面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。因为是机器指令的符号化表示,故不同的机器就有不同的汇编语言。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

(2)高速度和高效率。汇编语言保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU和I/O端口等,且占用内存少,执行速度快,是高效的程序设计语言。

(3)编写和调试的复杂性。由于是直接控制硬件,且简单的任务也需要很多汇编语言语句,因此在进行程序设计时必须面面俱到,需要考虑到一切可能的问题,合理调配和使用各种软硬件资源。这样,就不可避免地加重了程序员的负担。与此相同,在程序调试时,一旦程序的运行出了问题,就很难发现。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}