汇编语言程序设计的实验环境及上机步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章汇编语言程序设计实验
1.1 汇编语言程序设计的实验环境及上机步骤
1.1.1 实验环境
汇编语言程序设计的实验环境如下。
1.硬件环境
微型计算机(Intel x86系列 CPU)1台。
2.软件环境
·Windows 98/XP/Me/2000操作系统;
·任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等);
·汇编程序(MASM.EXE或TASM.EXE);
·链接程序(LINK.EXE或TLINK.EXE);
·调试程序(DEBUG.EXE或TD.EXE)。
本书建议文本编辑器使用EDIT或NOTEPAD,汇编程序使用MASM.EXE,链接程序使用LINK.EXE,调试程序使用TD.EXE。
1.1.2 上机步骤
汇编语言程序设计的实验2和实验3仅使用TD.EXE,关于TD.EXE的使用方法请参见附录B。
下面介绍的上机实验步骤适用于除实验2和实验3的所有实验(包括硬件接口部分的全部实验)。
1.确定源程序的存放目录
建议源程序存放的目录名为ASM,并放在C盘或D盘的根目录下。
如果没有创建过此目录,请用如下方法创建。
通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中单击右键,弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM5文件夹下的所有文件及TD.EXE都复制到此目录中。
2.建立ASM源程序
建立*.ASM源程序可以使用记事本文本编辑器。
注意:保存时扩展名必须ASM。
设建立的源文件为HELLO.ASM
3.用MASM.EXE汇编源程序产生OBJ目标文件
源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。
具体操作如下:
方法一:在Windows中操作
用资源管理器打开源程序目录C:\ASM,把HELLO.ASM拖到MASM.EXE程序图标上。
方法二:在DOS命令提示符窗口中操作
选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:
I:>C:<回车>
C:>CD\ASM<回车>
C:\ASM>MASM HELL0.ASM<回车>
操作时的屏幕显示如图1所示。
图1 在DOS命令提示符窗口中操作
不管用以上两个方法中的哪个方法,进入MASM程序后,都会提示让你输入目标文件名(Object filename),并在方括号中显示默认的目标文件名。
后面的两个提示为可选项,直接按回车。
注意,若打开MASM程序时未给出源程序名,则MASM程序会首先提示让你输入源程序文件名(Source filename),此时输入源程序文件名HELLO.ASM并回车,然后进行的操作与上面完全相同。
如果没有错误,MASM就会在当前目录下建立一个HELLO.OBJ文件(名字与源文件名相同,只是扩展名不同)。
如果源文件有错误,MASM会指出错误的行号和错误的原因。
图2-1-3是在汇编过程中检查出两个错误的例子。
在这个例子中,可以看到源程序的错误类型有两类:
一类是警告(Warning)。
警告不影响程序的运行,但可能会得出错误的结果。
此例中无警告错误。
另一类是错误(Errors)。
对于错误,MASM将无法生成OBJ文件。
此例中有两个严重错误。
在错误信息中,圆括号里的数字为有错误的行号(在此例中,两个错误分别出现在第1行和第2行),后面给出了错误类型及具体错误原因。
如果出现了严重错误,必须重新进入文本编辑器,根据错误的行号和错误原因来改正源程序中的错误,直到汇编没有错为止。
注意,汇编程序只能指出程序的语法错误,而无法指出程序逻辑的错误。
4.用LINK.EXE产生EXE可执行文件
在上一步骤中,汇编程序产生的是二进制目标文件(OBJ文件),并不是可执行文件,要想使编写的程序能够运行,还必须用链接程序(LINK.EXE)把OBJ文件转换为可执行的EXE文件。
具体操作如下。
方法一:在Windows中操作
用资源管理器打开源程序目录C:\ASM,把HELLO.OBJ拖到LINK.EXE程序图标上。
方法二:在DOS命令提示符窗口中操作
选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入LINK命令:
I:>C:<回车>
C:>CD\ASM<回车>
C:\ASM>LINK HELLO.OBJ<回车>
操作时的屏幕显示如图2-1-4所示。
不管用以上两个方法中的哪个方法,进入LINK程序后,都会提示让你输入可执行文件名(Run file),并在方括号中显示默认的可执行文件名。
后面的两个提示为可选项,直接按回车。
注意,若打开LINK程序时未给出OBJ文件名,则LINK程序会首先提示让你输入OBJ文件名(Object Modules),此时输入OBJ文件名HELLO.OBJ并回车,然后进行的操作与上面完全相同。
如果没有错误,LINK就会建立一个HELLO.EXE文件。
如果OBJ文件有错误,LINK会指出错误的原因。
对于无堆栈警告(Warning:NO STACK segment)信息,可以不予理睬,它不影响程序的执行。
如链接时有其他错误。
须检查修改源程序,重新汇编、连接,直到正确。
图2 把OBJ文件连接成可执行文件
5.执行程序
建立了HELLO.EXE文件后,就可以直接在DOS下运行此程序,如下所示:
C:>HELLO<回车>
C:>
程序运行结束后,返回DOS。
如果运行结果正确且程序已把结果直接显示在屏幕上,那么程序运行结束时结果也就得到了。
如果程序不显示结果,我们如何知道程序是否正确呢?例如,这里的HELLO.EXE程序并未显示出结果,所以我们不知道程序执行的结果是否正确。
这时,就要使用TD.EXE调试工具来查看运行结果。
此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,调试程序时也要使用DEBUG.EXE或TD.EXE。
有关如何使用DEBUG.EXE或TD.EXE程序的简要说明请读者参阅附录A和B。