400-123-4567
1、概述
汇编语言是为特定的计算机或计算机系列设计的一种面向机器的语言,由执行指令和伪指令组成。执行指令是机器指令的符号表示,其操作码用记忆符表示,地址码用标号、变量、常数(??)等表示。执行指令经汇编程序翻译为机器指令。执行指令和机器指令之间是一一对应的。伪指令是给汇编程序看的,用于实现机器指令以外的一些功能。
采用汇编语言编写的程序虽然不如高级语言那样,简便、直观、人性化,但是汇编出的目标程序占用内存少、运行效率高,且可以直接引用计算机的各种硬件设备(不知道现在在操作系统的管理下还行不行?)。汇编语言早期的应用范围很广,很多的应用程序都用汇编来写,但是随着高级语言的诞生和流行,汇编的应用范围变窄了,现在主要用于编写系统的核心部分,或者需要耗费大量运行时间和实时性要求较高的地方。
2、发展过程
汇编程序的雏型是在电子离散时序自动计算机 EDSAC上研制成功的。这种系统的特征是用户程序中的指令由单字母指令码﹑十进制地址和终结字母组成。第一个汇编程序是符号优化汇编程序(SOAP)系统﹐它是50年代中期为计算机研制的。这种计算机用磁鼓作存储器﹐每条指令指出後继指令在磁鼓中的位置。当初研制SOAP系统的动机不是引入汇编语言的符号化特色﹐而是为了集中解决指令在磁鼓中合理分布的问题﹐以提高程序的运行效率。计算机的符号汇编程序(SAP)是汇编程序发展中的一个重要里程碑。此後的汇编程序大都以这一系统为模型﹐其主要特征至今未发生本质的变化。随著计算机软件的高速发展和广泛应用﹐汇编程序又吸收了宏加工程序﹑高级语言翻译程序等系统的一些优点﹐相继研制出宏汇编程序﹑高级汇编程序。
3、分类
汇编程序分为简单汇编程序﹑模块汇编程序﹑条件汇编程序﹑宏汇编程序和高级汇编程序等。
简单汇编程序又称“装入并执行”式汇编程序。由於简便而得到广泛使用。这种汇编程序的特点是汇编後的机器语言程序直接放在内存之中准备执行。目标程序所占据的存储位置是在汇编时固定的﹐并且以後不能改变﹐所以这种工作方式不能将多个独立汇编的子程序合并为一个完整的程序﹐而且只能调用位置与目标程序不冲突的程序库中的子程序。
模块汇编程序为适应模块程序设计方法而研制的。它除了克服简单汇编程序的缺点之外﹐还提供并行设计﹑编码和调试不同程序模块的能力﹐而且更改程序时只更改有关的模块即可。每个汇编後的程序模块称为目标模块﹐多个目标模块经连接装配程序组合成一个完整的可执行的程序。
条件汇编程序主要特点是具有选择汇编某些程序段的能力。它适用於编写选择性较大的程序或程序包﹐以便根据用户的需要和设备的配置情况剪裁﹑编制适当的软件。这种汇编语言通常要引入“条件转移”﹑“转移”等汇编指示﹐以便根据用户指定的汇编条件有选择地汇编某些程序段或控制汇编程序的加工路径。
宏汇编程序主要特点是在汇编程序中增加宏加工功能。它允许用户方便地定义和使用宏指令﹐适用于程序中多处出现﹑具有一定格式﹑可以通过少数参数调节改变的程序段落的场合。采用这种方法不仅减少程序的长度﹐增加可读性﹐而且程序段落的格式需要改变时﹐只须改动定义处﹐而不必改动每一使用处。
高级汇编程序采用高级程序设计语言的控制语句结构的汇编程序。它不仅保持汇编语言表达能力强﹑程序运行效率高的优点﹐而且能充分吸收高级语言书写简单和易读的长处。这是由於高级汇编程序允许用户使用高级程序设计语言的控制语句(如条件语句﹑循环语句﹑函数和过程)编写程序中的控制部分﹐而且还允许用户直接利用汇编语言直接控制存储分配﹑存取寄存器硬件﹐描述高级语言难於表达的算法。第一个高级汇编程序是N.沃思为系统研制的PL/360语言汇编程序﹐其特点是程序的控制部分采用高级语言的控制语句编写﹐而数据加工部分采用汇编指令编写。自此以後﹐又相继出现了类似ALGOL的汇编程序﹐类似 的汇编程序FAT。