
《汇编语言程序设计》实验指导书
计算机应用教研室编
西南科技大学计算机科学与技术学院
2012 年 3 月

实验指导书说明
汇编语言程序设计是一门实践性很强的课程,只有通过上机实践才有可能掌握设计
技术并使其达到较高的水平,因此编写了实验指导书,为汇编语言程序设计课程的实验
教学服务。
实验指导书共分三部分,第一部分是实验的预备知识,介绍了汇编语言程序运行时
所需要的一些应用程序;第二部分是对实验报告的要求。第三部分是实验题目,分为验
证型实验和设计型实验。在具体的实验过程中可以根据学生情况进行选择。

目录:
第一部分 汇编语言程序设计实验基础知识概述......................................................................4
1.1、汇编程序 MASM.EXE.....................................................................................................4
1.1.1 宏汇编程序的功能................................................................................................4
1.1.2 汇编程序的用法......................................................................................................4
1.1.3 MASM 出错信息 ..................................................................................................5
1.1.4 连接程序 LINK.EXE ............................................................................................6
1.2 DEBUG 命令详解............................................................................................................7
1.2.1 DEBUG 的功能.....................................................................................................7
1.2.2 DEBUG 的使用方法.............................................................................................7
1.2.3 DEBUG 命令功能说明.........................................................................................8
第二部分 实验要求......................................................................................................................36
2.1 实验要求...........................................................................................................................36
2.2 实验报告要求...................................................................................................................36
2.3 加强实践能力的培养.......................................................................................................36
第三部分 实验内容......................................................................................................................37
实验 1 MASM、LINK 指令的使用实验..........................................................................37
实验 2 汇编命令(伪指令)实验.......................................................................................39
实验 3 顺序结构程序实验.................................................................................................40
实验 4 简单分支结构程序实验...........................................................................................42
实验 5 循环结构程序实验...................................................................................................44
实验 6 子程序实验...............................................................................................................45
实验 7 DOS 功能调用......................................................................................................48
实验 8 排序和检索程序实验...............................................................................................50
实验 9 字符串操作实验.......................................................................................................53
第四部分 参考资料......................................................................................................................59

第一部分 汇编语言程序设计实验基础知识概述
1.1、汇编程序 MASM.EXE
经过编辑的程序所建立的汇编语言源程序,是不能直接在计算机上运行的。必须经过汇
编、连接后才能运行。目前使用的汇编程序有宏汇编程序 MASM 和小汇编程序 ASM。小汇
编程序与宏汇编程序的区别在于:宏汇编程序有宏处理能力,而小汇编程形没有这种功能。
另外,小汇编(ASM)处理的汇编语言程序可以在 64KB 的内存条件下运行,且只能有限制地
使用伪指令。而宏汇编(MASM)则必须在 96KB 以上的内存条件下才能运行,且可以使用各
种伪指令。ASM 和 MASM 的程序运行过程,除汇编时使用 ASM 或 MASM 进行汇编外,
其它步骤完全萨同。
1.1.1 宏汇编程序的功能
宏汇编程序 MASM.EXE 是将用汇编语言编制的源程序转换为机器代码的目标程序
的软件。MASM 工作后生成 3 种文件:目标文件(.OBJ)、列表文件(.LST)和交叉索
引文件(.CRF)。
1.1.2 汇编程序的用法
宏汇编程序的使用方法有两种:交互式用法和命令行用法。
1、 交互式用法
在 DOS 提示符下,键入 MASM,并按回车键,宏汇编程序连续显示 4 个提示,用户根
据提示,逐个回答后,宏汇编程序开始工作。假设汇编语言源程序名为 EXAM.ASM,并存
放在当前盘当前目录下,生成的文件也放在当前盘当前目录下。其操作过程如下:
C> MASM
Source Filename[.ASM]: EXAM
Object Filenam[EXAM.OBJ]:
Source Listing [NUL.LST]: EXA<
Cross Reference [NUL.CRF]:EXAM
第一个提示要求用户输入汇编语言源文件名,源文件的扩展名为.ASM。用户回答源文
件名的基本名,不必输入扩展名,宏汇编程序默认为.ASM。本例输入的文件名为 EXAM。
第二个提示要求用户输入汇编后产生的目标文件名。方括号提示产生的目标文件名为
EXAM.OBJ,如果用户欲用此名为目标文件名,则不必输入名字,只须按回车键即可。如果
不想以提示的文件名为目标文件名,则键入文件名,但不必输入扩展名,宏汇编程序自己加
上扩展名.OBJ。本例仅按回车键,将生成 EXAM.OBJ 文件。
第三个提示要求输入源程序的列表文件名。如果用户需要生成列表文件,则回答文件名。
用户只须输入列表文件的基本名,不必输入扩展名,宏汇编程序自动加上扩展名.LST。本例
输入为 EXAM,将生成 EXAM.LST 文件。若仅按回车键,宏汇编程序将不生成列表文件。
第四个提示要求输入交叉索引文件名。如果用户需要生成交叉索引文件,则回答文件名。

用户只须输入交叉索引文件的基本名,不必输入扩展名,宏汇编程序自动加上扩展名.CRF。
本例输入为 EXAM,将生成 EXAM.CRF。若仅按回车键,宏汇编程序将不生成交叉索引文
件。
四个提示回答后,宏汇编程序开始对源程序进行汇编。在汇编过程中,宏汇编程序对源
程序进行词法、语法检查,如发现错误,则显示出错语句号和错误性质,最后显示出警告性
错误总数(Warning Errors)和严重错误总数(Severe Errors)。若错误数为 0,则汇编成功,
否则需修改错误,重复上述过程,直至错误数为 0。
2、 命令行用法
在 DOS 提示符下,键入 MASM 命令行,命令行格式为:
MASM 源文件名[,[目标文件名][,列表文件名][,[交叉索引文件名]]]][/开关参数][ ; ]
命令行中的方括号内为可选项,如果不选目标文件名项,则产生以源文件名为基本名的
目标文件,不选列表文件名和交叉索引文件名,则不生成.LST 和.CRF 文件。
例如:C>MASM EXAM, EXAM, EXAM, EXAM 三个文件全生成
C>MASM EXAM, , EXAM; 生成 EXAM.OBJ 和 EXAM.LST 文件
C>MASM EXAM; 仅生成 EXAM.OBJ 文件
命令行中的“;”作为命令行的终止符,未输入部分将使用 MASM 的隐含设定值。
[/开关参数]也是可选项,用以指定汇编程序的可选操作,开关参数可以是下述 5 种情况:
① /D:在汇编程序的两遍扫描中都产生列表文件,为用户查找两遍扫描步骤错误提供
方便。
②/O:在列表文件中用八进制表示生成的目标代码和偏移量;
③/X:列表伪操作在条件为假时,不作列表;
④/R:对源程序中的 8087 指令进行汇编,并产生 8087 目标代码;
⑤/E:对源程序中的 8087 指令进行汇编,产生 8087 仿真目标代码。
开关参数的使用方法是写在汇编命令行的字符串之后,每个开关参数前用一个斜杠
“/”,然后是开关字母。使用参数的多少和顺序由用户根据需要确定。
例如:A> MASM MYPRG/D/E
1.1.3 MASM 出错信息
汇编程序在对源程序进行汇编的过程中,对汇编语言程序进行词法句法的检查。一旦检
查出语法错误,则显示出错信息,MASM 5.0 版的错误信息格式:
(语句号) 错误性质
语句号是出错语句在源程序行中的语句行号。
例如:(20) Symbol 丨 multi-define
(20)是语句行号, 错误性质是:符号多重定义
下面给出常见的主要错误。
(1)Block nesting error 块嵌套错误
嵌套的过程、段、结构、宏定义、重复块定义等不恰当地结束。
(2)Extra characters on line 语句行上有额外字符
当在语句行上接收到定义指令、命令语句的足够信息时,还有其它多余字符。
(3)Unknow symbol type. 不认识的符号类型
符号语句,在类型字段内有不能识别的符号。
(4)Symbol is multi-defined. 重复定义符号
评论0