汇编语言实验指导书.doc
《汇编语言实验指导书.doc》由会员分享,可在线阅读,更多相关《汇编语言实验指导书.doc(20页珍藏版)》请在三一办公上搜索。
1、 汇编语言实验指导书计算机学院硬件实验室目 录第1部分实验预备知识1.1汇编语言程序的上机操作过程1.2常用DEBUG命令的功能第2部分汇编语言实验实验1 DEBUG基本命令使用.8实验2 汇编语言程序的调试与运行.9实验3 顺序结构程序设计.10实验 分支程序设计11实验 循环程序设计12实验 子程序设计15实验 中断服务程序设计16实验 综合程序设计17实验32位80x86程序设计20第1部分实验预备知识汇编语言程序设计是一门实践性很强的课程。编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。建立程序、调试程序需要一些应用程序的帮助。下面先介绍一些与上机操作有关的应
2、用程序,以为第二部分的实验做出必要的准备。1.1汇编语言程序的上机操作过程一、所需文件为运行汇编语言程序至少要在磁盘上建立以下文件:EDIT.COM(编辑程序)或其他编辑软件MASM.EXE (汇编程序)LINK.EXE(连接程序)DEBUG.EXE(调试程序,DOS外部命令文件)二、运行汇编语言程序的操作步骤1.用编辑程序建立.ASM源文件;2.用汇编程序把ASM文件转换成.OBJ文件;3.用连接程序把OBJ文件转换成.EXE文件;4.用DOS命令直接输入文件名就可执行该程序。三、 汇编语言源程序上机操作过程第一步:建立汇编源程序(即:建立文件名.asm)这个过程就相当于我们在纸上编写源程序
3、代码一样,只不过是将纸变为了计算机,这个过程也称源代码录入。将源程序代码录入计算机的方法很多,下面将介绍具体方法。(1)通过windows自带的EDIT.EXE文本编辑器进行输入。双击图标或在DOS提示符下键入:EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm ;(其中filename为你起的文件名,由1-8个字符组成),asm 是为汇编程序识别而必须加上去的,不可更改。(2)如果你的系统中没有EDIT,也可用你所熟悉的文本编辑器进行录入、编辑,如可用c语言和
4、pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。第二步:汇编目标文件(即:编译为.obj .lst .crf文件)这个过程计算机将把你编的正确的源代码编译为机器语言、程序清单及交叉引用表的目标文件。如果此时你的程序有语法错误,系统将报错,并指出在第几行,什么类型的错误,你可根据提示去逐一修改。现介绍具体过程:双击图标或在DOS提示符下键入MASM filename回车。这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。下面显示的信息是源程序中的错误个数,如果为0则表示顺利通过,就可进行进程c。但
5、如果不为0就说明有错误,并指出错误出现的行,可依据这个提示去进行修改。但如果错误太多还未等看清就显示过去了,可用如下命令形将错误信息存于一个你指定的文件,再用文本编辑器去查看。 MASM filename filen (filen为你起的一个没用过的文件名,用以存放出错信息)以后可查看filen来得到出错信息。第三步:编译不通过,重新修改(错误类型:源程序语句不合法)在执行过第二步后,如有出错信息时,就不能跳跃到第四步去,如果强行执行第四步,将无任何有效结果。现在就开现找错吧!首先要清楚,在第二步中检测出的错误均为每一条语句的语法或用法错误,它并不能检测出程序的逻辑设计(语句安排位置)错误,所
6、以就要记好出错的行号。在记录行号后,就应再次执行第一步,这时的操作应是打开已编好的源程序(以EDIT为例:在DOS提示符下键入:EDIT filename.asm回车),依据行号进行修改并存盘,再次进行汇编,直至第二步通过为止。便可继续向下执行第四步。第四步:连接为可执行文件(即:连接为.exe 或.com文件)在这个过程中一般没有意外,如果有也就是文件名打错了。格式:在DOS提示符下: LINK filename 回车第五步:运行编译好的可执行文件当第四步通过后,会产生一个可执行文件,这时只需运行这个程序,看它是否按你所想象那样得出结果。在试运行期间,要尽量试一些临界状态,看程序是否运行稳定
7、、结果是否正确。如一切正常,便可进入第六步了。可最怕的是不OK,程序产生一些莫名其妙的结果(你可不要以为是你的计算机不听你的指挥,其实它是在一丝不苟地按照你编的程序执行。我以前总以为我的计算机出了毛病),如果是在考场上这时千万不要慌,稳住自己的情绪,先不要看计算机,静几分钟(反正时间多得是)。这时就要用到最关键、最常用的一步了,进行第六步 。第六步:用调试工具调试,重新修改(逻辑错误)1.常用DEBUG命令的功能一、 DEBUG的主要用途及DEBUG的调用 DEBUG是为汇编语言设计的一种调试工具,它通过单步执行、设置断点等方式为汇编语言程序员提供了非常有效的程序调试手段。DEBUG可以直接用
8、来检查和修改内存单元、装入、存储及启动运行程序、检查及修改寄存器,也就是说DEBUG可深入到计算机的内部,可使用户更紧密地与计算机中真正进行的工作相联系。不仅如此,对汇编语言初学者来说,DEBUG也是练习使用汇编指令的一种有效工具。初学者可以直接在DEBUG环境下执行汇编指令。然而,在DEBUG下运行汇编语言源程序也受到了一些限制,它不宜汇编较长的程序,不便于分块程序设计,不便于形成以DOS外部命令形式构成的 .EXE文件,不能使用浮动地址,也不能使用ASM和MASM提供的绝大多数伪指令。 在DOS系统中,DEBUG是以DOS外部命令文件形式提供给用户的,名为DEBUG.EXE。 进入DEBU
9、G的提示符是符号“-”。即,出现提示符“-”就表示可以接受DEBUG命令了。 当进入DEBUG时,寄存器和标志设成以下数值,这些值用于DEBUG调试中的程序。 段寄存器CS,DS,ES和SS均指向DEBUG末尾的第一个段。 IP寄存器置为0100H。栈指针SP指向尾部或装入程序的暂存部分的底部。 其余寄存器皆取零值,但若用户调用时含文件说明,则CX含文件长度(长度大于64K时BX含长度的高位);标志为各自的复位值;驱动器传送地址在代码段位移80H处。注意:若DEBUG装入扩展名为.EXE的文件,则DEBUG需重定位且设置段寄存器指示器为文件中所定义的值。但DS,ES指向最低可用段处的程序区前缀
10、。BX和CX为文件容量值。而 .EXE文件如果在连接时选择了装入内存高处的参数,则该程序装入高处。二、DEBUG的主要命令功能与格式 DEBUG命令是在DEBUG提示符“-”下,由键盘键入的。每条命令以单个字母的命令符开头,然后是命令的操作参数,操作参数与操作参数之间,用空格或逗号隔开,操作参数与命令符之间用空格隔开,命令的结束符是回车键 Enter。命令及参数的输入可以是大小写的结合。Ctrl+Break键可中止命令的执行。Ctrl+Num Lock键可暂停屏幕卷动,按任一键继续。所用数均为十六进制数,且不必写H。* 1. 汇编命令A格式:A : 上式等价于: (1) A : (2) A :
11、 (3) A (4) A功能:键入该命令后显示段地址和段内偏移并等待用户从键盘逐条键入汇编命令,逐条汇编成代码指令,顺序存放到段地址和段内偏移所指定的内存区域,直到显示下一地址时用户直接键入回车键返回到提示符“-”。注: 其中(1)用指定段寄存器的内容作段地址,(3)用CS的内容作段地址,(4)以CS:100作地址。以后命令中提及的各种地址形式,均指(1)、(2)、(3)中A后的地址形式。2. 比较命令C格式: C , 其中是由 或者是由 L 指出的一片连续单元。功能:从的起始地址单元起逐个与目标起始地址以后的单元顺序比较单元的内容,直至源终止地址为止。遇有不一致时,以 的形式显示失配单元及内
12、容。* 3. 显示内存命令D格式: D 上式等价于: (1) D (2) D (3) D功能:以两种形式显示指定范围的内存内容。一种形式为十六进制内容,一种形式为以相应字节的内容作为ASCII码的字符,对不可见字符以.代替。注: 其中(1)以CS为段寄存器。(3)显示CS:100起始的一片内容。 * 4. 修改内存命令E格式: E 上式等价于: (1) E (2) E 其中是以逗号分隔的十六进制数,或用或”括起来的字符串,或者是二者的组合。功能: (1)不断显示地址,可连续键入修改内容,直至新地址出现后键入回车Enter为止。(2)将逐一写入由开始的一片单元。5. 填充内存命令F格式: F 功
13、能: 将单元内容表中的值逐个填入指定范围,单元内容表中内容用完后重复使用。 例如: -F 5BC:200 L 10 B2,XYZ,3C * 6. 执行命令G格式: G =, 上式等价于: (1) G (2) G= (3) G=,功能: 执行内存中的指令序列注: (1)从CS:IP所指处开始执行 (2)从指定地址开始执行 (3)从指定地址开始执行,到断点自动停止。* . 读盘命令L格式: L 其中的缺省值为CS:100。逻辑扇区可由物理扇区号换算得到,以双面双密度盘为例:物理扇区是按0面0道1区,0面0道2区,0面0道9区,0面1道1区,0面39道9区,1面0道1区,1面39道9区排列。而逻辑扇
14、区与物理扇区号的对应关系为物理扇区0面0道1扇区至9扇区,逻辑扇区号为08;物理扇区1面0道1扇区至9扇区,逻辑扇区号为911H;物理扇区0面1道1扇区至9扇区,逻辑扇区号为121AH;。这样每道先0面后1面一直排下去。 其中为0、1或2,0表示A驱,1表示B驱,2表示硬盘。功能: 将指定的盘上,从起,共n个逻辑扇区上的所有字节顺序读入指定内存地址开始的一片连续单元。当L后的参数缺省时,必须在L之前由N命令指定(或进入DEBUG时一并指出)所读驱动器文件名。此时L执行后将该文件装入内存。 例如:-N EXAMPLE -L 将当前驱动器上的EXAMPLE文件装入CS:100起始的一片内存单元。*
15、 . 命名待读写文件命令N格式: N 功能: 为LW命令指定待装入写盘文件注: 其它形式参考DOS手册. 端口输出命令O格式: O 功能:将该从指定输出。 例如:-O 2F 4F 将4FH从端口2FH输出* 10. 结束DEBUG返回DOS命令Q格式:Q功能:返回DOS提示符下* 11. 显示修改寄存器命令R格式: R 上式等价于: (1) R (2) R 功能: (1)显示当前所有寄存器内容,状态标志及将要执行的下一指令的地址,代码及汇编语句形式。其中对状态标志FLAG以每位的形式显示,详见表1-1。表1-1 状态标志显示形式标志位溢出OF方向DF中断IF符号SF零 ZF辅助AF奇偶PF进位
16、CF状 态有无减增开关负正零非有无偶奇有无显 示OVNVDNUPEIDINGPLZRNZACNAPEPOCYNC(2)显示指定寄存器内容例如:-R AX -R F * 12. 跟踪命令T格式:T = 功能:执行由指定地址起始的、由指定的若干条命令。其中的缺省值是当前IP值,的缺省值是一条。 例如:-T 执行当前指令并显示状态 -T 10 从当前指令始执行10H条指令* 13. 反汇编命令U格式:U / 上式等价于: (1) U (2) U (3) U功能:将指定范围内的代码以汇编语句形式显示,同时显示地址及代码。注意,反汇编时一定确认指令的起始地址后再作,否则将得不到正确结果。地址及范围的缺省
17、值是上次U指令后下一地址的值。这样可以连续反汇编。* 14. 写盘命令W格式:W 功能:与L命令不同的地方是将内存从起始的一片单元内容写入指定扇区。只有W而没有参数时,与N命令配合使用将文件写盘。注:要求读者对其中打*的DEBUG命令必须能熟练使用。三、使用DEBUG调试和运行可执行文件 用户程序经过编辑、汇编、连接后得到一个可执行文件(.EXE),这时借助于调试程序DEBUG对用户程序进行调试,查看程序是否能完成预定功能。对于初学者,如何选用DEBUG中各命令,有效地调试与运行程序,需要一个学习过程。在初次使用DEBUG时,可参照下列步骤进行。1调用DEBUG,装入用户程序 可以在调用DEB
18、UG是直接装入用户程序可执行文件,也可以在进入DEBUG环境后使用N命令和L命令装入用户程序可执行文件。无论用哪种方法,装入用户程序可执行文件时,一定要指定文件全名(即文件名和扩展名)。2观察寄存器初始状态 程序装入内存后,用R命令查看寄存器内容。从各段寄存器现在的内容,便能了解用户程序各逻辑段(代码段,堆栈段等)在内存的分布及其段基值。R命令亦显示了各通用寄存器和标志寄存器的初始值,显示的第三行就是即将执行的第一条指令。3以单步工作方式开始运行程序 首先用T命令顺序执行用户程序的前几条指令,直到段寄存器DS和或ES已预置为用户的数据段。在用T命令执行程序时,每执行一条指令,显示指令执行后寄存
19、器的变化情况,以便用户查看指令执行结果。4观察用户程序数据段初始内容 在第3步执行后DS和或ES已指向用户程序的数据段和附加段,这时用D命令可查看用户程序的原始数据。5继续以单步工作方式运行程序 对于初学者,一般编写的程序比较短,用T命令逐条执行指令,可清楚地了解程序的执行过程:现在执行的是什么指令,执行后的结果在哪里(寄存器,存储单元)?所得结果是否正确?等等。在逐次使用T命令时,若有需要,可选用D命令了解某些内存单元的变化情况。 用T命令逐条执行程序时,如遇上用户程序中的软中断指令INT(如INT 21H),这时,通常不要用单步工作方式执行INT指令。因为系统提供的软中断指令INT是以中断
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 实验 指导书

链接地址:https://www.31ppt.com/p-4476505.html