汇编语言程序也称为汇编语言源程序,就是用
汇编语言编写的一种计算机程序, 属于计算机低级语言程序,是属性为ASM的源文件。
汇编语言程序在经过
汇编、
链接后得到可执行程序即EXE文件。
汇编语言程序
汇编语言程序的英语为Assembly language program,中文为
汇编语言程序。
汇编语言程序可以分为若干个段,是由
伪指令来定义的,每一个段都由若干条语句组成。它可以有
数据段、附加段、
堆栈段、
代码段;数据段存放程序里的相关数据,附加段则用来存放附加的数据,堆栈段定义了堆栈所在的区域,代码段是程序的主要部分,由
汇编指令编制的程序代码就存放在这里。这几个段除了
代码段之外,都是可有可无的。
汇编语言程序的每一条语句可以由4项组成,格式如下:
〈name〉 operation operand 〈; comment〉
其中名字(name)项是一个符号。
操作(operation)项是一个
操作码的
助记符,它可以是指令、
伪指令或
宏指令名。
操作数(operand)项由一个或多个
表达式组成,它提供为执行所要求的操作而需要的信息。
注释(comment)项用来说明程序或语句的功能。“;”为识别注释项的开始。“;”也可以从一行的第一个字符开始,此时整行都是注释,常用来说明下面一段程序的功能。
上面4项中带尖括号的两项是可有可无的。各项之间必须用“空格”(space)或“水平制表”(TAB)符隔开。
汇编语言程序实例
用汇编语言对4位10进制数加密。密码是0123456789对应为9082746315。 DATA SEGMENT
TABLE DB 39H,30H,38H,32H,37H,34H,36H,33H,31H,35H;密码表 RESULT DB 4 DUP(?);四位十进制数对应的密码 DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE MAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX LEA BX,TABLE LEA DI,RESULT MOV AX,1234;已知的四位十进制数,以下分别求四位十进制数位,并将密码存入RESULT中 MOV SI,1000 CALL NUMBER MOV SI,100 CALL NUMBER MOV SI,10 CALL NUMBER MOV SI,1 CALL NUMBER LEA DI,RESULT;在屏幕上依次显示四位加密后的十进制数 MOV CX,4 NEXT: MOV DL,[DI] MOV AH,2H INT 21H INC DI LOOP NEXT ;按任意键退出 mov ah,1 int 21h MOV AX,4C00H INT 21H MAIN ENDP NUMBER PROC NEAR MOV DX,0 DIV SI MOV SI,DX XLAT STOSB MOV AX,SI RET NUMBER ENDP CODE ENDS END MAIN.
编制过程
(1) 分析问题;
(2) 建立数学模型;
(3) 确定算法;
(5) 内存空间分配;
运行过程
(2) 用MASM程序把ASM文件(即
汇编语言程序)转换成OBJ文件;
(3) 用LINK程序把OBJ文件转换成EXE文件;
( 4) 用调试程序DEBUG调试EXE文件;
(5) 在DOS命令行下直接键入EXE文件名就可以执行该程序;
优点
因为用汇编语言设计的程序最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如
磁盘、
存储器、
CPU、
I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源。
目标代码简短,占用内存少,执行速度快,是高效的程序设计语言,经常与高级语言配合使用,以改善程序的执行速度和效率,弥补高级语言在硬件控制方面的不足,应用十分广泛。
缺点
汇编语言程序是面向
机器的,处于整个计算机语言层次结构的底层,故被视为一种低级语言,通常是为特定的计算机或系列计算机专门设计的。不同的处理器有不同的汇编语言语法和
编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性;
难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生
bug,难于调试;
使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。