汇编语言上机环境及基本操作.docx
《汇编语言上机环境及基本操作.docx》由会员分享,可在线阅读,更多相关《汇编语言上机环境及基本操作.docx(16页珍藏版)》请在冰点文库上搜索。
汇编语言上机环境及基本操作
实验1:
讲解
汇编语言上机环境及基本操作
1.1汇编语言程序的上机环境
(1)DOS操作系统:
在MS-DOS状态下,才能进行汇编语言操作。
(2)编辑程序:
用来输入、建立和修改源程序的一种通用系统软件,如EDIT.COM
(3)汇编程序:
宏汇编MASM.EXE。
(4)连接程序:
LINK.EXE。
(5)调试程序:
DEBUG.COM。
1.2汇编语言程序的上机步骤
(1)用编辑程序EDIT.COM建立扩展名为.ASM的汇编语言源程序文件。
(2)用汇编程序MASM.EXE将源程序文件汇编成用机器码表示的目标程序文件,扩展名为.OBJ。
(3)如在汇编过程中出现错误,根据信息提示(如错误位置、错误类型、错误说明等),用编辑软件重新调入源程序进行修改。
无错时用连接程序LINK.EXE把目标文件转化成可执行文件,扩展名为.EXE。
(4)DOS命令状态下直接键入可执行文件名就可执行该文件。
1.3应用举例
1.用编辑程序EDIT建立源程序
(1)进入DOS命令状态,发出C:
\>EDIT命令,可进入EDIT编辑屏幕,输入源程序。
在EDIT状态下用键可激活命令选项,如图1所示,用光标上下、左右移动可选择相应命令功能,也可选择反白的命令关键字进行操作。
用键可退出命令选项。
图1EDIT屏幕编辑软件工作窗口
(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)汇编错误分警告错误和严重错误
警告错误(WarningErrors)是指汇编程序认为的一般性错误;
严重错误(SevereErrors)是指汇编程序认为无法进行正确汇编的错误。
MASM会给出错误的位置、个数、类别、原因等信息,用户可对程序加以修改再重新汇编,一直到汇编无误为止。
3.用连接程序LINK生成可执行文件
汇编后产生的目标文件.OBJ须经连接后才能成为可执行文件.EXE,如图4所示。
图4LINK连接程序工作窗口
(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.1DEBUG简介
DEBUG是汇编语言的一个工具软件,用于:
(1)建立汇编语言源程序并对其进行汇编;
(2)用于程序的控制执行;
(3)跟踪程序的运行踪迹;
(4)检查和修改程序中每条指令的执行结果;
(5)检查和修改各寄存器和存储器的内容;
(6)用于对接口操作和对磁盘进行读写操作等。
程序文件名为DEBUG.COM。
进入DEBUG后,出现提示符“_”,可通过DEBUG命令输入汇编源程序,并用相应命令将其汇编成机器语言程序,然后调试并运行该程序。
2.2DEBUG常用命令
DEBUG的每条命令以单个字母的命令符开头,然后是命令的操作参数,各参数之间用空格或逗号隔开,命令符与参数之间用空格隔开,命令的结束符是回车键。
用Crtl+Break键可中止命令的执行;
用Crtl+NumLock键可暂停屏幕卷动,按任意键继续。
DEBUG的主要命令及功能参见表1所示。
表1DEBUG的主要命令及功能
命令名
含义
使用格式
功能
D
显示存储单元
-D[address]
按指定地址范围显示存储单元内容
-D[range]
按指定首地址显示存储单元内容
E
修改存储单元内容
-Eaddress[list]
用指定内容表替代存储单元内容
-Eaddress
逐个单元修改存储单元内容
F
填写存储单元内容
-Frangelist
将指定内容填写到存储单元
R
检查和修改寄存器内容
-R
显示CPU内所有寄存器内容
-Rregistername
显示和修改某个寄存器内容
-RF
显示和修改标志位状态
G
运行
-G[=address1][address2]
按指定地址运行
T
跟踪
-T[=address]
逐条指令跟踪
-T[=address][value]
多条指令跟踪
A
汇编
-A[address]
按指定地址开始汇编
U
反汇编
-U[address]
按指定地址开始反汇编
-U[range]
按指定范围的存储单元开始反汇编
N
命名
-Nfilespecs[filespecs]
将两个文件标识符格式化
L
装入
-Laddressdrivesectorsector
装入磁盘上指定内容到存储器
-L[address]
装入指定文件
W
写入
-Waddressdrivesectorsector
把数据写入磁盘指定的扇区
-W[address]
把数据写入指定的文件
Q
退出
-Q
退出DEBUG
2.3DEBUG的综合应用实验
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状态标志显示形式
标志位
状态
显示形式
溢出标志OF
有/无
OV/NV
方向标志DF
减/增
DN/UP
中断标志IF
开/关
EI/DI
符号标志SF
负/正
NG/PL
零标志ZF
零/非零
ZR/NZ
奇偶标志PF
偶/奇
PE/PO
进位标志CF
有/无
CY/NC
辅助进位标志AF
有/无
AC/NA
DOS常用命令
1.从Windows进入DOS
(1)[开始]→[运行]→输入命令:
command;转至当前C盘目录
(2)[开始]→[程序]→[附件]→命令提示符;转至当前C盘目录
2.当前工作盘符确定
C:
;工作盘为C盘
D:
;工作盘为D盘
E:
;工作盘为E盘
3.路经转换
CD..;转至根目录
CDMASM;转至MASM目录
4.显示当前文件清单
DIR;顺序显示文件信息
DIR/W;横向显示文件名称
5.文件换名
REN旧文件名新文件名;以新文件名代替旧名
6.删除文件
DEL文件名;删除指定文件
DEL文件名.*;删除同文件名的所有文件
DEL*.扩展名;删除同扩展名的所有文件
7.显示文件内容
TYPE文件名;显示指定源程序文件的内容
8.拷贝文件
COPY文件名盘符:
(路经)
9.退出DOS
EXIT;从DOS命令状态下返回Windows
本次实验要求
1.从Windows进入DOS,转到[MASM],查看当前目录内容。
2.用EDIT建立汇编语言源程序文件,熟悉EDIT编辑软件的操作。
3.练习用MASM、LINK对汇编源程序进行汇编和连接。
4.熟悉调试程序DEBUG的命令和应用,注意查看寄存器、存储器、标志位、数据段、代码段等内部内容,跟踪指令的运行过程。
5.可参考书中相关程序和本次实验中例子
6.积累操作技能,为下次程序设计实验做好准备