汇编语言程序设计指导书

  • 格式:docx
  • 大小:40.63 KB
  • 文档页数:6

《汇编语言程序设计》实验指导书

适用于计科专业2004级

前 言

汇编语言实验主要使学生掌握DEBUG调试程序中各命令的利用方式,掌握MASM汇编程序对汇编语言源程序进行编辑、汇编、连接、装配、调试到运行的上机操作方式。本实验大纲要求学生熟练掌握汇编语言指令练习、顺序程序设计、分支程序设计、循环程序设计和子程序设计。

一、 实验环境

汇编语言程序设计的实验环境如下:

1. 硬件环境

微型运算机(Intel x86系列CPU)一台

2. 软件环境

Windows98/2000/XP操作系统

任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)

汇编程序(或)

连接程序(或)

调试程序(或)

文本编辑器建议利用EDIT或NOTEPAD,汇编程序建议利用,连接程序建议利用,调试程序建议利用。

二、 上机实验步骤

1.肯定源程序的寄存目录

建议源程序寄存的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。

2.成立ASM源程序

成立ASM源程序能够利用EDIT或NOTEPAD(记事本)文本编辑器。

注意,汇编语言源程序文件的扩展名最好起名为.ASM,如此能给后面的汇编和连接操作带来专门大的方便。

3.用汇编源程序产生OBJ目标文件

源文件成立后,要利用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。具体操作如下:

方式一:在Windows中操作

用资源管理器打开源程序目录C:\ASM,把拖到程序图标上。

方式二:在DOS命令提示符窗口中操作

选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:

D:>C:<回车>

C:>CD \ASM<回车>

C:\ASM>MASM <回车>

操作时的屏幕显示如图1所示。

图1 在DOS命令提示符窗口中进行汇编

无论用以上二个方式中的哪个方式,进入MASM程序后,都会提示让你输入目标文件名(Object filename),并在方括号中显示默许的目标文件名,建议输入目标文件的完整路径名,如:C:\ASM\〈回车〉。后面的两个提示为可选项,直接按回车。注意,若打开MASM程序时未给出源程序名,则MASM程序会第一提示让你输入源程序文件名(Source filename),现在输入源程序文件名并回车,然后进行的操作与上面完全相同。

图2 有错误的汇编进程例子

若是没有错误,MASM就会在当前目录下成立一个文件(名字与源文件名相同,只是扩展名不同)。若是源文件有错误,MASM会指犯错误的行号和错误的原因。图2是在汇编进程中检查出两个错误的例子。在那个例子中,能够看到源程序的错误类型有两类:

警告错误(Warning Errors)。警告错误不影响程序的运行,但可能会得犯错误的结果。此例中无警告错误。

严峻错误(Severe Errors)。对于严峻错误,MASM将无法生成OBJ文件。此例中有两个严峻错误。

在错误信息中,园括号里的数字为有错误的行号(在此例中,两个错误别离出此刻第6行和第9行),后面给出了错误类型及具体错误原因。若是出现了严峻错误,你必需从头进入EDIT编辑器,按照错误的行号和错误原因来更正源程序中的错误,直到汇编没有错为止。

注意,汇编程序只能指出程序的语法错误,而无法指出程序逻辑的错误。

4.用产生EXE可执行文件

在上一步骤中,汇编程序产生的是二进制目标文件(OBJ文件),并非是可执行文件,要想使咱们编制的程序能够运行,还必需用连接程序()把OBJ文件转换为可执行的EXE文件。具体操作如下:

方式一:在Windows中操作

用资源管理器打开源程序目录C:\ASM,把拖到程序图标上。

方式二:在DOS命令提示符窗口中操作

选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入LINK命令:

D:>C:<回车>

C:>CD \ASM<回车>

C:\ASM>LINK <回车>

操作时的屏幕显示如图3所示。

图3 把OBJ文件连接成可执行文件

无论用以上二个方式中的哪个方式,进入LINK程序后,都会提示让你输入可执行文件名(Run file),并在方括号中显示默许的可执行文件名,建议输入可执行文件的完整路径名,如:C:\ASM\〈回车〉。后面的两个提示为可选项,直接按回车。注意,若打开LINK程序时未给出OBJ文件名,则LINK程序会第一提示让你输入OBJ文件名(Object Modules),现在输入OBJ文件名并回车,然后进行的操作与上面完全相同。

若是没有错误,LINK就会成立一个文件。若是OBJ文件有错误,LINK会指犯错误的原因。对于无堆栈警告(Warning:NO STACK segment)信息,能够不予理会,它不影响程序的执行。如链接时有其它错误。须检查修改源程序,从头汇编、连接,直到正确。

5.执行程序

成立了文件后,就可以够直接在DOS下运行此程序,如下所示:

C:>HELLO〈回车〉

C:>

程序运行结束后,返回DOS。若是运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。若是程序不显示结果,咱们如何明白程序是不是正确呢?例如,这里的程序并未显示出结果,所以咱们不明白程序执行的结果是不是正确。这时,咱们就要利用或DEBUG调试工具来查看运行结果。另外,大部份程序必需通过调试阶段才能纠正程序执行中的错误,调试程序时也要利用或DEBUG。

三、实验项目

实验一 汇编语言实验操作方式(3学时)

(一) 验目的及要求 1. 熟悉汇编语言的工作环境。

2. 通过一个简单的程序,了解如何汇编、连接和运行一个汇编语言程序。

3. 了解DEBUG调试程序中常常利用命令的利用方式。

4. 通过运行简单的汇编语言程序 ,初步了解汇编语言源程序的特点。

5. 依照要求书写实验报告。

(二)实验内容

利用编辑程序,输入教材146页例程序或《IBM-PC汇编语言程序设计实验教程》中的例程序后进行汇编、连接和运行,并利用DEBUG中的各类命令进行调试。

(三)实验预备

1. 认真阅读本实验指导。

2. 预习教材146页第四章第四末节的内容。

3. 预习《IBM-PC汇编语言程序设计实验教程》中附录五的内容。

实验二 汇编语言指令练习(3学时)

(一)实验目的及要求

1. 熟悉汇编语言中的数据传送、算术运算等指令。

2. 了解指令不同的寻址方式,注意规定或限制利用的寄放器。如:双操作数指令中,源操作数和目的操作数的地址不能同时为存储器地址,段跨越前缀不能利用CS,操作对象是地址仍是地址中的内容,指令隐含利用的寄放器等。

3. 利用DEBUG中的相关命令调试程序及查看结果。

4. 依照要求书写实验报告。

(二) 实验内容

大体题:编写一个完整的程序放在代码段中,要求把数据段中的AUGEND和附加段中的ADDEND相加,并把结果寄存在数据段中的SUM中。其中AUGEND、ADDEND、SUM均为双精度数。

选做题:……………………….

(三) 实验预备

1.认真阅读本实验指导。

2.按实验内容要求,理解相关指令,编写程序。

实验三 顺序程序设计(2学时)

(一)实验目的及要求 1.掌握汇编语言程序设计的大体步骤,分析问题,确立算法,画出程序流程图.说明流程图中各功能的含义和表示法。分派工作单元和存储空间。按照程序算法流程选择适合的指令编制汇编语言源程序。本实验着重掌握顺序程序的设计大体方式和技能。

2.程序要结构化:简明、易读和易调试;执行速度较快;占用存储空间较少。

3.利用DEBUG中的相关命令调试程序及查看结果。

4.依照要求书写实验报告。

(二)实验内容

大体题:编一段程序,在内存中自SQTAB地址开始的持续10个单元中寄存0-9的平方值。要求利用简单的查表法NUM单元中指定数(0-9)的平方值,并将所求平方值存入RESULT单元。

选做题:……………………….

(三)实验预备

1.认真阅读本实验指导。

2.按实验内容要求,肯定算法,画流程图,编写程序。

实验四 ……

(一)实验目的及要求

…………..

(二)实验内容

…………………..

(三)实验预备

……….

………………………………….