欢迎来到天天文库
浏览记录
ID:18113778
大小:75.50 KB
页数:13页
时间:2018-09-14
《129023170980946250汇编语言上机操作及程序调试的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《微型计算机原理及应用》汇编语言上机操作及程序调试的方法第一节在IBM-PC机上运行汇编源程序所必备的软件为了在IBM-PC机上运行汇编源程序,机器上必须有DOS操作系统环境,DOS系统盘上应有下列文件:EDIT文件编辑程序MASM宏汇编程序CREF交叉引用文件处理程序LINK链接程序LIB库管理程序DEBUG调试程序第二节在IBM-PC机上运行汇编源程序的步骤当用户编制好汇编语言源程序之后,要在机器上运行,必须经过以下几个步骤:1.用EDIT命令建立与修改汇编源程序文件(ASM文件)源程序就是用汇编语言的语句编写的程序,它不能被机器识别。源程序必须以ASM为附加文件名。至
2、于EDIT的使用方法可以查阅手册。2.用MASM命令汇编源文件以产生相应的目标文件(OBJ文件)源程序建立以后,必须经过汇编,转换成用二进制代码表示的目标文件,机器才可运行。汇编是通过调用PC—DOS下的宏汇编程序MASM实现的。汇编过程中,汇编程序对源文件进行二次扫描,如果源程序中有语法错误,则汇编过程结束后,汇编程序会指出源程序中的错误,这时,用户可以再用编辑程序来修改源程序中的错误,最后,得到没有语法错误的OBJ文件。3.用LINK命令连接目标文件以产生可执行文件(EXE文件)由于汇编之后所得到的目标代码的存放地址并不是可执行的绝对地址,而是浮动的相对地址,因而,必须
3、经过连接,把程序的各个模块连接在一起,或把要调用的子程序与主程序连接在一起,把相对地址变成绝对地址,形成可执行的文件。连接是由调用PC—DOS下的LINK程序来实现的。4.调试、运行可执行文件。经过以上过程,在盘上有了可执行文件,则可在DOS提示符下,直接打入文件名(不用扩展名),就可以把执行文件从盘上装入内存,且立即执行此程序。20《微型计算机原理及应用》然而通常一个较复杂、较长的汇编语言源程序,希望一点错误也没有的可能性是很小的,这样就需要调用PC—DOS支持下的DEBUG程序,来调试我们的目标程序。被调试程序在DEBUG的管理下,可以单步执行程序,也可以设置断点,可以
4、显示和修改CPU内部寄存器和标志位的内容等,这样就便于寻找程序中的错误。在发现了错误以后,通常还要重复上述的编辑、汇编,连接和调试程序的全过程,直至程序运行正确为止。已调试的目标程序,任何时候都可在PCDOS下,通过打入文件名即可运行它。上机过程示意图如下:为了便于操作,下面将上机操作全过程中的主要部分分别加以介绍,编辑程序因为使用普遍,在此不做介绍。第一节宏汇编程序20《微型计算机原理及应用》经过编辑命令建立和修改后存盘的汇编语言源程序(扩展名为.ASM),要在机器上运行,必须先由汇编程序把它汇编为机器码的目标程序。经过IBM汇编程序汇编后的程序在盘上建立三个文件:一个是
5、扩展名为.OBJ的目标程序。在此程序中,操作码部分已变为机器码,但操作数地址只是一个可浮动的相对地址,而不是内存中的绝对地址。第二个是扩展名为.LST的汇编列表文件,它把源程序(包括注释)和汇编后的目标程序都制表,可以打印出来供检查用。第三个是扩展名为.CRF的符号交叉列表文件,可以对符号进行前后对照。在汇编时,汇编程序对要不要建立这些文件,有如下提示:例如对exam.asm文件进行汇编:在DOS状态下,打入MASM调用宏汇编程序,屏幕显示与操作如下:C>MASM↙此时,屏幕上出现如下信息:TheIBMPersonalComporterMACROAssemble,1.00(
6、C)Copyright。IBMCorp1981.Sourcefilename[.ASM]:exam↙Objectfilename[exam.Obj]:↙SourceListing[Nul.1st]:exam↙Crossreference[Nul.crf]:exam↙WarningSeveresErrorsErrors00从上面操作过程中可以见到,汇编程序的输入文件就是:用户编写的源程序,它必须以ASM为文件扩展名,在汇编调入后,先显示版本号,然后出现第一行提示,询问要汇编的源文件名。用户输入文件名,则出现第二个提示,询问目标程序的文件名,括号内的为机器规定默认的(defau
7、lt)文件名,通常直接按回车,表示采用默认文件名,接着出现第三个提示,问是否要建立可打印文件,若要,打入文件名,若不要,可直接回车。最后出现第四个提示,询问是否要建立交叉索引文件,若需要则打入文件名,若不要直接回车。在回答了第四个询问后,汇编程序就对源程序进行汇编。汇编过程结束时,如果程序有错误会给出源程序的警告性错误(warningerrors)和严重错误(severserrors)。前者指出一般性错误,后者指出语法性错误。当存在这两类错误时,屏幕上除指出错误个数外,还给出错误信息代号。程序员可以通过查代码手册弄
此文档下载收益归作者所有