debug介绍

上传人:简****9 文档编号:101783656 上传时间:2019-09-29 格式:DOC 页数:8 大小:131KB
返回 下载 相关 举报
debug介绍_第1页
第1页 / 共8页
debug介绍_第2页
第2页 / 共8页
debug介绍_第3页
第3页 / 共8页
debug介绍_第4页
第4页 / 共8页
debug介绍_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《debug介绍》由会员分享,可在线阅读,更多相关《debug介绍(8页珍藏版)》请在金锄头文库上搜索。

1、1.1.3 调试程序DEBUG.EXE使用介绍DEBUG是DOS支持下的专用于80X86汇编语言动态调试的工具软件,它的主要功能是: 从磁盘调入或从键盘上输入被调试的程序,汇编或反汇编一段汇编语言源程序; 显示/修改寄存器或存储器的内容、填充指定内存区域、内存区域内容的移动、两块内存区域内容的比较、在指定区域中查找字符等; 用不同方式跟踪程序执行的轨迹。如跟踪、设断点运行程序等; 读/写磁盘文件或扇区等。 DEBUG共为用户设置19条命令,每条命令执行后都会在屏幕上给出回答信息。利用DEBUG命令分析、调试、修改、扩充一个代码程序十分方便。因此,掌握用DEBUG来对程序进行调试的方法,对学习汇

2、编语言程序设计将是十分有用的。尤其是大程序的调试,没有DEBUG的帮助将会是十分困难的。 下面介绍一些常用的DEBUG命令的使用方法。一、 DEBUG的启动操作方法:开始所有程序附件命令提示符,显示命令提示符的初始界面。如图1.10。图1.10 DEBUG的启动启动后进入DEBUG状态,如图1.11。图1.11 DEBUG状态说 明 :(1) 对于不带参数的DEBUG启动后,在DEBUG状态提示符“”下,可利用DEBUG命令对内存现有的内容进行操作。若需对指定文件操作,则应使用N和L命令,将指定文件装入内存,再进行操作。操作方法如图1.10。 图1.12 DEBUG状态下指定文件操作0AF6:

3、0100 MOV AX, 2000 0AF6:0103 MOV DS, AX 0AF6:0105 MOV DI, 3500 0AF6:0108 MOV CX, 0064 0AF6:010B MOV AL, 00 0AF6:010D MOV DI, AL 0AF6:010F INC DI 0AF6:0110 ADD AL, 01 0AF6:0112 DAA 0AF6:0113 LOOP 010D 0AF6:0115 MOV AH, 02 0AF6:0117 MOV DL, 4F 0AF6:0119 INT 21 0AF6:011B MOV AH, 02 0AF6:011D MOV DL, 4B

4、0AF6:011F INT 21 0AF6:0121 INT 3 0AF6: 或用CTRL + C 键。 1)、 反汇编命令 U格式:U 起址 或 U 起址 末址功能:该命令用来将内存中的某一机器语言程序转换为汇编语言源程序的形式,列在终端显示器上。例:U 0100:011D ;显示从CS:0100 CS:0116的源程序 U 2000:0200 ;从2000:0200开始,反汇编32个字节U ;接着上一个U命令,继续向下反汇编。若没有用过U命令,则从CS:0100开始反汇编1、 内存的显示和修改1)、 显示内存的命令 D格式: D 地址 或 D 起址 末址功能: 该命令可将内存单元中的内容以

5、十六进制与相应的ASCII码形式显示,对不可显示的字符用“.”表示(见图17右侧区域)。键入 D100 显示的状态如图1.1图1.13 D命令显示状态 说 明 :(1) 在D命令后只输入偏移地址时,段地址为DS。不带地址参数且第一次使用D命令时,从DS:0100H开始显示,以后从上一个D命令所显示的最后一个单元内容之后连续显示。执行D命令一次显示128(80H)个字节,每行显示16个字节,第8字节和第9字节之间用字符“”连接;(2) D命令显示格式从左至右依次是地址、16进制内容、ASCII码内容。2)、 修改存储单元内容命令 E格式:E 地址 或 E 地址 功能:第一种格式是一个单元一个单元

6、修改,空格键继续,回车键结束。第二种格式用命令中字节串的内容去一次性替换指定开始的若干个连续存储单元的内容。例: E 2000:00202000:0020 00 3E;修改一个单元内容或 E 2000:0000 30 31 32 33 34 35;修改五个单元内容。2、 显示和修改寄存器内容1)、 显示寄存器命令 R格式:R功能:显示CPU全部寄存器的内容例: RAX0000BX0000CX0000DX0000SPE61DBP0000SI0000DI0000DS18D2ES18D2SS18D2CS18D2IP01002)、 修改寄存器命令 R格式:R 寄存器名功能:显示指定寄存器的内容并等待修

7、改。例:R AXAX 0000:00FF;即可将AX的内容改为00FFH。若不修改,可直接打入回车。3)、 修改标志寄存器命令 RF格式:RF功能:用来显示标志寄存器的内容并等待修改。例:RFOV DN EI NG ZR AC PE CY DI;即可将开中断改为关中断。8086 / 8088中共有九个标志位。其中跟踪标志T不能直接用指令改变,其它8个标志可以显示和修改。显示时,8个标志的显示次序和符号见表 1.1。表 1.1 标志的显示次序及符号标志位溢出方向中断符号零辅助进位奇偶进位OFDFIFSFZFAFPFCF置位OVDNEINGZRACPECY复位NVUPDIPLNZNAPONC说 明

8、:由于标志的状态是唯一的,故输入的标志的次序可以任意。若不改,直接按回车。3、 运行和跟踪命令1)、 运行命令 G格式:G起始地址 断点1 断点2 功能:启动运行一个程序或程序段。例:G100 11D ;从100开始运行到11D时暂停 或 G100 ;从100开始运行,直到程序结束说 明:(1) 不带参数的G命令,从CS:IP开始运行程序,直到程序正常结束;(2) 仅带地址参数的G命令,从指定地址运行程序;(3) 带起始地址、断点地址参数的G命令,从指定地址开始运行程序,遇到断点暂停,并显示CPU各寄存器的内容和下一条要执行的指令。继续执行用G命令。在开始调试程序时,往往要设置断点。DEBUG

9、程序中,允许最多可设置10个断点。断点的次序是任意的,设断点的目的是便于程序的分段调试。注意:断点地址必须是指令地址(即每条机器指令第一个字节的地址称指令地址),对于G命令,堆栈必须至少包含有6个可用的字节,否则会出现不可预料的结果。2)、 跟踪命令 T格式:T起始地址 或 T起始地址 指令条数功能:跟踪程序执行的轨迹,每执行一条指令,按R命令的格式进行显示,执行完毕返回到DEBUG状态。不带参数的T命令,则执行从CS:IP开始的一条指令,每执行一条,IP就自动指向下一条指令。注意:T命令不能直接跟踪某些BIOS操作,否则会发生计算机被死锁的情况。3)、 跟踪过程命令 P格式:P起始地址功能:

10、该命令执行过程类似T命令,不同的是它跟踪一个过程或软中断。4)、 退出命令 Q格式:Q功能:退出DEBUG,返回DOS,但无存盘功能。此外,DEBUG中还有查找、比较、填充和移动内存的命令,磁盘文件操作命令,输入输出及其它命令等,不再一一具体介绍.使用时,可查阅有关手册。常用的DEBUG命令见表1.2。表1.2 常用DEBUG命令一览表1.2 汇编语言程序设计实验实验一 在DEBUG状态下建立和运行程序的操作一、 实验目的1、 掌握在DEBUG状态下程序的输入方法,寄存器、存储器检查的方法;2、 掌握设断点、跟踪程序执行轨迹的运行程序的方法;3、 初步熟悉和掌握汇编语言的基本指令和编程方法。二

11、、 实验器材80X86微机一台三、 实验内容要求在2000:3500H开始的内存缓冲区中建立一个00 99的数据块。通过下面程序的输入、检查和执行,一方面熟悉在DEBUG状态下建立和运行程序的过程,另一方面通过显示器的监视,观察指令执行结果,并熟悉在DEBUG状态下存储器、寄存器的检查方法,初步 了解程序的调试过程。四、 实验步骤1、 启动DEBUG程序操作方法:C:ASMDEBUG 其中“”为DEBUG提示符。2、 在DEBUG状态下,用A命令输入下列程序,存于内存DS:0100开始的缓冲区。操作方法:0AF6:0100 MOV AX, 2000 0AF6:0103 MOV DS, AX ;

12、设置段址为2000 0AF6:0105 MOV DI, 3500 ;设置数据首址为3500 0AF6:0108 MOV CX, 0064 ;设置数据长度为100 0AF6:010B MOV AL, 00 ;初始数据为00 0AF6:010D MOV DI, AL ;数据存入相应内存单元 0AF6:010F INC DI ;修改地址指针 0AF6:0110 ADD AL, 01 0AF6:0112 DAA ;数据十进制加1 0AF6:0113 LOOP 010D ;循环直到CX为0 0AF6:0115 MOV AH, 02 0AF6:0117 MOV DL, 4F 0AF6:0119 INT 2

13、1 ;调用02H功能显示“O” 0AF6:011B MOV AH, 02 0AF6:011D MOV DL, 4B 0AF6:011F INT 21 ;调用02H功能显示“” 0AF6:0121 INT 3 ;返回DEBUG 0AF6:0122 3、 程序输入完毕后,用反汇编命令“U”来查看输入的程序。 操作方法:U 0100 0121 ;(U起址,末址) 0AF6:0100 MOV AX, 2000 0AF6:0103 MOV DS, AX 0AF6:0105 MOV DI, 3500 0AF6:0108 MOV CX, 0064 0AF6:010B MOV AL, 00 0AF6:010D MOV DI, AL 0AF6:010F INC DI 0AF6:0110 ADD AL, 01 0AF6:0112 DAA 0AF6:0113 LOOP 010D 0AF6:0115 MOV AH, 02 0AF6:0117 MOV DL, 4F 0AF6:0119 INT 21

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

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