1.1.2 汇编语言

1.1.2 汇编语言

为了克服机器语言难以记忆、表达和阅读的缺点,人们将机器指令符号化,以直观、便于记忆的符号来表示机器指令,这些符号被称为指令助记符(Memonic)。例如,用ADD表示加法指令,MOV表示传送指令,MUL表示乘法指令等。

以助记符描述的指令称为汇编格式指令或符号指令,通常简称指令。指令和伪指令的集合及其程序设计规则便构成了汇编语言。伪指令的概念将在第3章介绍。用汇编语言编写的程序就是汇编语言源程序。

利用汇编语言,计算表达式36×68+10的程序代码如下:

MOV AL,36

MOV BL,68

MULBL

ADD AX,10

显然,用汇编语言编写的程序要比机器代码更易理解。

然而,汇编语言仅仅是机器语言的符号化,每条汇编语言指令均对应唯一的机器指令,因而与机器语言并无本质区别,即具有机器语言“与机器的密切相关性”等特点,只是在直观和记忆方面有了改进。

1.汇编与汇编器

由于计算机只能识别机器语言,故用汇编语言编写的源程序必须被翻译成机器语言后,方可执行。把汇编语言源程序翻译成机器语言描述的目标程序的过程称为汇编。完成汇编任务的程序称为汇编器(Assembler)或汇编程序。

汇编器的主要功能是对汇编语言源程序进行语法检查,并生成相应的目标文件(.obj文件)。汇编器类似于高级语言的编译器(Compiler)。

2.连接与连接器

虽然目标文件已是机器语言程序,是二进制代码文件,但还不能直接运行,需要经过连接器(Linker,或称连接程序)将它与其他目标文件或库文件连接在一起,生成可执行文件(.exe文件)后,方可在计算机上运行。连接器的主要功能是实现多个目标文件及库文件的连接,并完成浮动地址的重定位。

从汇编语言源程序到可执行程序的生成过程如图1-1所示。

img1

图1-1 汇编与连接过程