当前位置:文档之家› 汇编语言上机环境及基本操作

汇编语言上机环境及基本操作

实验1:讲解汇编语言上机环境及基本操作1.1 汇编语言程序的上机环境(1)DOS操作系统:在MS-DOS状态下,才能进行汇编语言操作。

(2)编辑程序:用来输入、建立和修改源程序的一种通用系统软件,如(3)汇编程序:宏汇编MASM.EXE。

(4)连接程序:LINK.EXE。

(5)调试程序:。

1.2 汇编语言程序的上机步骤(1)用编辑程序建立扩展名为.ASM的汇编语言源程序文件。

(2)用汇编程序MASM.EXE将源程序文件汇编成用机器码表示的目标程序文件,扩展名为.OBJ。

(3)如在汇编过程中出现错误,根据信息提示(如错误位置、错误类型、错误说明等),用编辑软件重新调入源程序进行修改。

无错时用连接程序LINK.EXE把目标文件转化成可执行文件,扩展名为.EXE。

(4)DOS命令状态下直接键入可执行文件名就可执行该文件。

1.3 应用举例1. 用编辑程序EDIT建立源程序(1)进入DOS命令状态,发出C:\>EDIT命令,可进入EDIT编辑屏幕,输入源程序。

在EDIT状态下用<ALT>键可激活命令选项,如图1所示,用光标上下、左右移动可选择相应命令功能,也可选择反白的命令关键字进行操作。

用<ESC>键可退出命令选项。

图1 EDIT屏幕编辑软件工作窗口(2)程序输入完毕退出EDIT前一定要将源程序文件存盘,以便进行汇编及连接。

【例1】从键盘输入10个字符,以与键入相反的顺序将10个字符输出到屏幕上,源程序名为STR.ASM。

DOS状态下,调用EDIT建立文件名为STR.ASM的汇编源程序,如图2所示。

图2 用EDIT建立汇编语言源程序2.用MASM将源程序文件汇编成目标程序文件DOS状态下,采用MASM对源程序文件进行汇编,如图3所示。

图3 用MASM汇编生成目标文件MASM主要功能:(1)检查源程序中的语法,有错时给出错误信息;源程序经汇编后无错误后产生目标程序文件,扩展名为.OBJ;(2)调入MASM时,先显示软件版本号,然后出现三个提示行:第1个提示行:询问目标文件名,方括号内为默认,可按回车,也可输入指定文件名。

第2个提示行:询问是否建立列表文件,若不建立可回车;若建立则输入文件名再回车。

列表文件中同时列出源程序和机器语言程序清单及符号表。

第3个提示行:询问是否要建立交叉索引文件,若不建立可回车;如要建立则输入文件名,建立扩展名为.CRF的文件,为此必须调用CREF.EXE程序。

(3)汇编错误分警告错误和严重错误警告错误(Warning Errors)是指汇编程序认为的一般性错误;严重错误(Severe Errors)是指汇编程序认为无法进行正确汇编的错误。

MASM会给出错误的位置、个数、类别、原因等信息,用户可对程序加以修改再重新汇编,一直到汇编无误为止。

3.用连接程序LINK生成可执行文件汇编后产生的目标文件.OBJ须经连接后才能成为可执行文件.EXE,如图4所示。

图4 LINK连接程序工作窗口(1)调入连接程序后首先显示版本号,然后出现三个提示行。

第1个提示行:询问要产生的文件名,直接回车,采用方括号内默认文件名。

第2个提示行:询问是否要建立连接映像文件.MAP,不建立直接回车;如要建立则输入文件名。

.MAP文件可给出每个段在存储器中的分配情况。

第3个提示行:询问是否用到库文件.LIB,若无特殊需要直接键入回车即可。

(2)回答上述提示以后,连接程序开始连接。

连接过程中如出现错误则显示错误信息,根据提示的错误原因,要重新调入编辑程序加以修改,再重新汇编,经过连接直到没有错误为止。

4.程序运行可直接在DOS状态下执行带.EXE的可执行文件程序。

本例输入命令:C:\>STR然后从键盘输入“0123456789”10个数字,按回车键后计算机将10个数字倒序排列输出,即“9876543210”。

再次输入命令:C:\>STR从键盘输入“abcdefghij”10个字符,按回车键后计算机将10个字符倒序排列输出,即“jihgfedcba”。

运行过程及其结果如图5所示。

图5 程序的运行状态及结果实验2 调试程序DEBUG的应用2.1 DEBUG简介DEBUG是汇编语言的一个工具软件,用于:(1)建立汇编语言源程序并对其进行汇编;(2)用于程序的控制执行;(3)跟踪程序的运行踪迹;(4)检查和修改程序中每条指令的执行结果;(5)检查和修改各寄存器和存储器的内容;(6)用于对接口操作和对磁盘进行读写操作等。

程序文件名为。

进入DEBUG后,出现提示符“_”,可通过DEBUG命令输入汇编源程序,并用相应命令将其汇编成机器语言程序,然后调试并运行该程序。

2.2 DEBUG常用命令DEBUG的每条命令以单个字母的命令符开头,然后是命令的操作参数,各参数之间用空格或逗号隔开,命令符与参数之间用空格隔开,命令的结束符是回车键。

用Crtl+Break键可中止命令的执行;用Crtl+NumLock键可暂停屏幕卷动,按任意键继续。

DEBUG的主要命令及功能参见表1所示。

表1 DEBUG的主要命令及功能2.3 DEBUG的综合应用实验1. 实验目的(1)学习DEBUG常用命令的使用;(2)熟悉8086的内部寄存器和内存单元状况;(3)了解程序运行过程及最终结果。

2. 实验内容及要求分别用DEBUG各种命令实现对存储单元、寄存器等内容进行修改及简单程序跟踪运行,分析每条指令功能和执行结果。

3. 利用DEBUG进行程序调试的过程步骤如下:(1)装入被调试文件(2)查看程序运行前各寄存器的初始值用R命令查看段寄存器初始值,了解各逻辑段的段地址和标志寄存器中各标志位状态。

(3)查看用户程序的原始数据用D命令查看数据段中内存单元的原始数据。

(4)查看程序各功能段的执行过程用断点运行方式逐段执行各程序段,了解程序段的功能、执行后结果存放位置、寄存器和内存单元的内容变化情况等。

(5)查看出错程序段的执行过程用单步运行方式(T命令)逐条查看出错程序段每条指令的执行过程,确定出错的位置和原因。

(6)程序调试测试程序执行结果,确认程序的正确性,防止设计性的错误。

用E命令修改程序数据区的数据;用G命令运行程序;用R命令和D命令显示各组数据的运行结果。

(7)修改程序和数据反复查看程序运行情况,如发现个别地方有错可在DEBUG环境下利用A命令进行修改;若错误较多需要作较大的修改时,应返回编辑程序进行修改,然后再汇编、连接生成可执行文件。

(8)连续运行并保存程序用连续运行方式查看程序执行结果是否正确,当确认程序正确后,可用N命令和W命令将正确程序存盘,退出DEBUG即完成程序的调试。

4. DEBUG命令的综合应用【例2】在DEBUG中用A命令将给定源程序写入内存并汇编,用G命令执行程序,用D命令观察运算结果,用U命令反汇编,再用Q 命令退出DEBUG。

具体操作:(1)进入DEBUG,用A命令写入并汇编一个程序,该程序将两个数0102H和0304H分别存放在0120H和0122H单元中,求和运算后结果存放在0124H单元。

输入过程如图6所示,DEBUG中所用的操作数均为十六进制数,数据标识可不必写H。

输入完后用Ctrl+C或Ctrl+Break组合键可退出A命令。

图6 用A命令汇编给定程序(2)执行程序,键入命令_G,结果如图7所示。

图7 用G命令执行程序(3)用D命令显示运算结果,如图8所示。

图8 用D命令显示运算结果(4)用U命令反汇编程序,如图9所示。

图9 用U命令反汇编程序(5)用Q命令退出DEBUG返回DOS,如图10所示。

图10 用Q命令退出DEBUG返回DOS【例3】进入DEBUG,显示当前数据段0200H开始的一片存储区域内容,用E命令将一段机器代码指令写入0200H~0208H单元,用G命令执行,用U命令实现反汇编。

具体操作如下:(1)进入DEBUG,显示0200H处开始的一片内存单元内容,如图11所示。

(如果不指明显示范围,则默认显示128个存储单元)图11 进入DEBUG显示0200H开始的内存单元(2)用E命令将指定机器代码指令写入0200H开始的内存单元,并用D命令显示0200H~0208H单元写入的内容,如图12所示。

图12 用E命令写入机器代码并用D命令显示(3)用G命令从0200H处开始执行程序,如图13所示。

执行结果是在屏幕上显示字符“3”。

图13 用G命令执行程序(4)用U命令反汇编,显示0200H处存放的汇编程序,如图14所示。

图14 用U命令反汇编5. DEBUG命令中的状态标志寄存器显示状态标志寄存器的标志位意义,详见表2。

表2 状态标志显示形式DOS常用命令1.从Windows进入DOS(1)[开始]→[运行]→输入命令:command ;转至当前C盘目录(2)[开始]→[程序]→[附件]→命令提示符 ;转至当前C盘目录2.当前工作盘符确定C: ;工作盘为C盘D: ;工作盘为D盘E: ;工作盘为E盘3.路经转换CD.. ;转至根目录CD MASM ;转至MASM目录4.显示当前文件清单DIR ;顺序显示文件信息DIR/W ;横向显示文件名称5.文件换名REN 旧文件名新文件名 ;以新文件名代替旧名6.删除文件DEL 文件名 ;删除指定文件DEL 文件名.* ;删除同文件名的所有文件DEL *.扩展名 ;删除同扩展名的所有文件7.显示文件内容TYPE 文件名;显示指定源程序文件的内容8.拷贝文件COPY 文件名盘符:(路经)9.退出DOSEXIT ;从DOS命令状态下返回Windows本次实验要求1.从Windows进入DOS,转到[MASM],查看当前目录内容。

2.用EDIT建立汇编语言源程序文件,熟悉EDIT 编辑软件的操作。

3.练习用MASM、LINK对汇编源程序进行汇编和连接。

4.熟悉调试程序DEBUG的命令和应用,注意查看寄存器、存储器、标志位、数据段、代码段等内部内容,跟踪指令的运行过程。

5.可参考书中相关程序和本次实验中例子6.积累操作技能,为下次程序设计实验做好准备。

相关主题