汇编语言程序设计 教学课件 ppt 作者 何超 第8章 汇编语言程序开发与调试

上传人:w****i 文档编号:92614990 上传时间:2019-07-11 格式:PPT 页数:40 大小:366.50KB
返回 下载 相关 举报
汇编语言程序设计 教学课件 ppt 作者 何超 第8章 汇编语言程序开发与调试_第1页
第1页 / 共40页
汇编语言程序设计 教学课件 ppt 作者 何超 第8章 汇编语言程序开发与调试_第2页
第2页 / 共40页
汇编语言程序设计 教学课件 ppt 作者 何超 第8章 汇编语言程序开发与调试_第3页
第3页 / 共40页
汇编语言程序设计 教学课件 ppt 作者 何超 第8章 汇编语言程序开发与调试_第4页
第4页 / 共40页
汇编语言程序设计 教学课件 ppt 作者 何超 第8章 汇编语言程序开发与调试_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《汇编语言程序设计 教学课件 ppt 作者 何超 第8章 汇编语言程序开发与调试》由会员分享,可在线阅读,更多相关《汇编语言程序设计 教学课件 ppt 作者 何超 第8章 汇编语言程序开发与调试(40页珍藏版)》请在金锄头文库上搜索。

1、第8章 汇编语言程序开发与调试,第8章 汇编语言程序开发与调试,8.1 汇编语言程序开发过程 8.2 汇编语言程序的调试方法,开 始,8.1 汇编语言程序开发过程,第8章 汇编语言程序开发与调试,返回本章首页,第8章 汇编语言程序开发与调试,汇编语言开发过程,(1)编写程序,建立扩展名为.asm的汇编源程 序文件。 (2)对源程序进行汇编,生成目标文件(.obj)。 (3)将一个或多个目标文件以及库文件连接生 成一个可执行文件(.exe)。 (4)试运行。,返回本节,例:用源程序Demo.asm来求SUM = X+Y的值,X和Y,SUM已经在数据段中给 出定义了。,第8章 汇编语言程序开发与调

2、试,DATA SEGMENT X DW 36 Y DW 62 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA,MOV DS,AX MOV AX,X MO V BX,Y ADD AX,BX MOV SUM,AX MOV AH,4CH INT 21H CODE ENDS END START,返回本节,第一步 编辑源程序, 建立汇编语言源程序。 如图8-1,由于源程序 属于ASCII文件,可以 使用任何文本编辑器, 如DOS下的edit, WINDOWS下的记事本, 或者Masm所自带的PWB (Pro

3、grammer Work Bench) 但是注意不能使用Word, 或写字板来编辑。 关于文本编辑器的使用 读者可查阅相关书籍和手册。 编辑完成后保存到C:Demo.asm,第8章 汇编语言程序开发与调试,图8-1编辑源程序图示,第二步 编译源程序,生成目标文件.obj。 编译工作由编译器完成,编译器根据汇编语言语法来去检查源程序,如有错误它会自动提示修改,它将错误分成两类:严重错误(Severe Error或简称Error)和错误警告(Warning)。而严重错误不能生成目标文件,这时必须对源程序进行修改,然后再次编译,直至没有错误为止。,第8章 汇编语言程序开发与调试,下面我们以Masm

4、5.10的版本为例来编译源程序Demo.asm (1)首先确认计算机已经安装了Masm 5.10,确认方法; 打开C盘查看是否有Masm这一个文件夹。 (2) 然后点击【开始】【运行】输入cmd(如图8-2), 进入到命令行模式下,键入如下命令:“cd”、“ cd masm ”、“cd bin”、“masm”(如图8-3)所示。,第8章 汇编语言程序开发与调试,图8-2 开始运行界面,图8-3 编译界面,第8章 汇编语言程序开发与调试,图8-4 编译界面,图中我们可以看到:当运行了masm后,显示出了masm的版本信息,以及编译的使用方法。 在编译是我需要注意输入源程序的文件名时一定输入源程序

5、的路径,如果这个源程序就在当前目录下,只要输入文件名就够了,而如果说在其他目录下,则一定输入路径,比如我们要编译的这个Demo.asm存盘在C盘,则输入:C:demo.asm (3) 确定目标文件后,按图8-4所示,输入C:demo.asm,编译过程中会提示输入列表文件.lst以及交叉文件.crf的名称(见图8-5),这里可以不用输入直接键入Enter跳过去。,第8章 汇编语言程序开发与调试,图8-5编译界面,第8章 汇编语言程序开发与调试,图 8-6 编译界面4,当编译结束后,在提示信息最后两行会告诉我们这个程序有没有错误和警告信息,如果有则必须修改。 待编译完成后,我们可使用dir命令查阅

6、目标文件 .obj是否生成,如图8-6所示当前目录下已生成 .obj文件。,第8章 汇编语言程序开发与调试,第三步 连接 连接是利用连接器将一个或多个目标文件与库文件连接起来,生成可执行文件。 对源程序编译之后,我们可以得到一个目标文件 .obj,则我们需要来对此文件连接生成可执行文件 .exe.,返回本节,第8章 汇编语言程序开发与调试,图 8-7 编译界面,我们使用微软Overlay Linker .3.64连接器,文 件名link。 在我们刚刚编译后的目录下输入link启动,这时link提示我们输入目标文件名,如图8-7所示。,第8章 汇编语言程序开发与调试,同样直接输入demo.obj

7、即可。在连接过程中会提示我们是否需要生成映像文件.map和库文件.lib,如下图8-8所示。一般不需要,可以直接键入Enter跳过去。,图 8-8 编译界面,当连接完成后,通过dir命令查阅,我们已经可得到demo.exe的可执行程序了。如图8-9。,第8章 汇编语言程序开发与调试,图 8-9 编译界面,第8章 汇编语言程序开发与调试,直接命令行模式下输入demo.exe,但是程 序执行后没有显示任何结果。这是因为汇编连接通过后,只能说明程序无语法错误,至于运行能否得到预期的结果,还要通过汇编调试工具测试,看程序是否合理,算法是否得当。,第四步 执行文件(试运行) 生成.exe可执行文件后,这

8、时我们便可以来执行我们刚所编写的程序检验效果。,返回本节,如果在运行结束后,想看到本程序执行的结果,可以加入以下子程序,首先将要显示输出的结果转换为ASCII码,然后再利用DOS功能调用中的2号功能调用,将结果在显示器上显示。,第8章 汇编语言程序开发与调试,;-子程序ASCII实现将二进制转化位ASCII码- ;入口参数,二进制数据保存在AX寄存器中。 ;出口参数,将二进制所对应的ASCII码保存在以SUM开 始的内存单元中,并在显示器上输出该字符。,ASCII PROC NEAR MOV SI,4 MOV CX,10 R1:MOV DX,0,第8章 汇编语言程序开发与调试,DIV CX ;

9、DX:AX除以CX,商在AX中,余数在DX中 ADD DL,30H DEC SI MOV BXSI,DL JNZ R1 MOV DX,OFFSET SUM MOV AH,09H INT 21H RET ASCII ENDP ;- 子程序ASCII结束- 另外,对于大多数汇编语言程序都需通过调试才能检验程序执行结果的。下面我们讨论汇编语言程序的调试方法。,返回本节,8.2 汇编语言程序的调试方法,第8章 汇编语言程序开发与调试,返回本章首页,第8章 汇编语言程序开发与调试,程序在正式运行前,要将程序进行调试。而通常最常用的调试方法就是利用Debug程序。在调试过程中,如发现错误,则必须对源程序修

10、改,重新编译,连接直到无错为止。 1.基础知识 DEBUG是为汇编语言设计的一种高度工具,它通过单步、设置断点等方式为汇编语言程序员提供了有效的调试手段。 调试程序DEBUG.EXE是版本有关的,不同版本的操作系统具有不同的文件(功能一样),纯DOS操作系统:DOS目录的DEBUG.EXE文件;Windows 9x操作系统:MS-DOS环境,使用Windows文件夹下command子文件夹的DEBUG.EXE文件;Windows 2000/XP操作系统:MS-DOS环境,使用WINNT文件夹下system32子文件夹的DEBUGEXE文件,第8章 汇编语言程序开发与调试,2.DEBUG程序的调

11、用 在DOS的提示符下,可键入命令: C:DEBUG D:PATHFILENAME.EXTPARM1PARM2 其中,文件名是被调试文件的名字。如用户键入文件,则 DEBUG将指定的文件装入存储器中,用户可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。 在DEBUG程序调入后,将出现提示符“-”,此时可用DEBUG 命令来调试程序。,返回本节,第8章 汇编语言程序开发与调试,3. DEBUG的主要命令 在输入提示符“-

12、”后,键入?,然后回车,可以显示DEBUG命令一览表。下面介绍其中得主要命令。 (1) 显示存储单元的命令D(DUMP),格式为: -Daddress或_Drange 例如,按指定范围显示存储单元内容的方法为: -d 100 120 18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G .8.G.G . 18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ; h M PQVW. 7 18E4:0120 8B,返回本节,其中0100至0120是DEBUG显示的单元内容

13、,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节内容。如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。,第8章 汇编语言程序开发与调试,(2)修改存储单元内容的命令有两种 A. 输入命令E(ENTER),有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为: -E addresslist 例如,-E DS:100 F3XYZ8D 其中F3,X,Y,Z各占一个字节,该命令可用这五个字节替代存储单元DS:0100到0

14、104的原先内容。,第二种格式则是采用逐个单元相继修改的方法。命令格式为: -E address 例如, -e cs:100 则可能显示为: 18E4:0100 89. - 如果需要把该单元的内容修改为78,则用户可直接键入78,再按“空格”键,可接着显示下一个单元的内容,如下: 18E4:0100 89.78 1B. - 这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。,第8章 汇编语言程序开发与调试,B.填写命令F(FILL),其格式为: -F range list 例如:-F 4BA:0100 5 F3XYZ8D 使04BA:0100 0104单元包含指定的五个字

15、 节的内容。如果list中的字节数超过指定的范围, 则忽略超过的项;如果list的字节数小于指定的范 围,则重复使用list填入,直到填满指定的所有单元为止。,第8章 汇编语言程序开发与调试,(3) 检查和修改寄存器内容的命令R(register),它有三种格式如下: A显示CPU内所有寄存器内容和标志位状态,其格式为: -R 例如,-r AX = 0000 BX = 0000 CX = 010A DX = 0000 SP = FFFE BP = 0000 SI = 0000 DI = 0000 DS = 18E4 ES = 18E4 SS = 18E4 CS = 18E4 IP= 0100 NV UP DI PL NZ NA PO NC 18E4 : 0100 C70604023801 MOV WORD PTR 0204,0138 DS : 0204 = 0000,第8章 汇编语言程序开发与调试,返回本节,B显示和修改某个寄存器内容,其格式为: -R register nam

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号