收藏 分享(赏)

调试程序工具DEBUG.doc

上传人:kpmy5893 文档编号:9235386 上传时间:2019-07-30 格式:DOC 页数:5 大小:2.73MB
下载 相关 举报
调试程序工具DEBUG.doc_第1页
第1页 / 共5页
调试程序工具DEBUG.doc_第2页
第2页 / 共5页
调试程序工具DEBUG.doc_第3页
第3页 / 共5页
调试程序工具DEBUG.doc_第4页
第4页 / 共5页
调试程序工具DEBUG.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、调试程序工具 DEBUGDebug 是 DOS、Windows 都提供的实模式(8086 方式)程序的调试工具。使用它可以检查和改变存储内容,调试和运行程序,还可以随时中断程序的运行,进行数据检查和修改。1. Debug 的进入和退出Debug 是在 DOS 方式下使用的程序。我们在进入 Debug 前,应先进入到 DOS 方式。用以下方法可以进入 DOS。 重新启动计算机,进入 DOS 方式,此时进入的是实模式的 DOS。 在 Windows 中进入 DOS 方式,此时进入的是虚拟 8086 模式的 DOS。下面是在 Windows XP 中进入 Debug 的一种方法,在其它 Window

2、s 版本中类似。选【开始】菜单中的【运行】命令,打开【运行】对话框,在文本框中输入“command”后,单击【确定】按钮。本章中的例子默认 Debug 程序在驱动器 C 中,如果你的系统设置与此假设不同,请变更驱动器或目录。在 DOS 目录下键入 DEBUG 的名称,就可以进入 DEBUG 程序。键入“DEBUG”不分大小写。DEBUG 提示符是“-” ,此时,你就可以输入 DEBUG 的命令了。退出命令 Q,输入 Q 并按 Enter 回车键就退出 DEBUG 运行环境返回到 DOS 目录下。2. 寄存器内容的检查和修改可以通过寄存器命令对 CPU 内部的寄存器内容进行检查,并可以修改寄存器

3、的内容。指令格式:R 指令尖括号内容是指令可选部分,如果没有输入,使用 R 指令将显示所有寄存器的内容;否则将只显示输入名称的寄存器的内容。输入 R 命令并按回车键,DEBUG 将显示三行信息。第一行显示了通用寄存器、指针寄存器和索引寄存器的内容。第二行显示了段寄存器的内容、指令指针的当前值以及标志寄存器位。第二行后面的几个代码“NV UP NC”表示标志寄存器中的 8 位状态。标志寄存器在 DEBUG 中的表示方式在后面加以说明。第三行显示了程序将要执行的指令,显示了通过 CS:IP 发出的指令。在刚开始进入 DEBUG 时,通用寄存器的初始值会设为零,标志位全部复位。虽然段寄存器在不同的系

4、统中具有不同的内容,但是同一个系统中各个段寄存器的值都是一样的,这一点是由操作系统决定。本例中段寄存器的值是 17FE。由于段寄存器的值是操作系统默认的,所以千万不要改变它。修改寄存器内容,如图在 R 指令后输入 AX 寄存器,下一行显示 AX 寄存器的内容是“0000”,第三行出现冒号,在这里输入新的值后按回车键 AX 寄存器被新的值取代,直接按回车键寄存器的内容不变。使用 R 指令不能单独调用通用寄存器的高 8 位和低 8 位寄存器,例如:-r ah 或 r al 是错误的。3. 对 DEBUG 中的程序进行编码及运行A 命令用于将汇编语言命令输入到存储器中。命令格式:A 起始地址可以用偏

5、移量来表示,在这种情况下它默认为代码段的偏移量;否则,就需要指定具体的段寄存器。输入“A 100”和“A CS:100”得到的结果是一样的。在命令提示符“-”后面输入此命令时,DEBUG 就会提示你开始进入汇编语言命令输入,在地址提示符下直接按回车将结束指令输入。在 DEBUG 环境下输入汇编语言指令操作数采用立即寻址方式时默认的是十六进制形式。当你输入指令到偏移地址为 0100 的存储单元中,DEBUG 将这条指令转换为机器语言,并放在 0100 到 0102 之间,然后提示你输入下一条指令,这条指令就会被存储到偏移地址0103 的存储单元中。注意:不要从低于 100 偏移地址单元开始汇编。

6、开始的 100H(256)字节是 DOS 预留的,不能用于你编写的程序。U 反汇编指令反汇编指令显示出存储器中的机器代码以及相应的汇编语言指令。指令格式:U U 反汇编是将存储在存储器中的机器代码转换成汇编语言指令。 “-U 100 10B”是第一种格式,“-U 100 LB”是第二种格式,其中“L”表示长度, “B”是字节数。反汇编显示出“17FE:0100”是代码段段地址和指令的偏移地址, “B80100”是“MOV AX,0001”的机器指令。如果输入 U 命令后面不带地址直接回车, DEBUG 将显示从 CS:IP 开始的 32 个字节。连续输入将继续显示。执行命令执行命令请求 DEB

7、UG 执行给出地址范围之间的所有指令。指令格式:G 如果没有给出地址,DEBUG 就从 CS:IP 开始执行指令直到到达终止点。当只给出指令“-G” ,从当前指令指针( CS:IP)指定的指令开始执行直到遇到“INT 3”终止程序指令,屏幕显示当前寄存器的值和标志位的状态。指令“-G=100 109”是从起始偏移地址为 0100 处开始执行直到偏移地址是 0109 处停止,显示当前各个寄存器的值和标志位的状态。跟踪命令用跟踪命令可以在程序的执行过程中同时跟踪一条或多条指令,对寄存器和数据程序功能进行效验。指令格式:T 这条指令从起始地址开始执行指令,如果没有给出指令数,默认的指令数为 1。如果

8、没有给出起始地址,跟踪命令同执行命令一样从 CS:IP 开始执行。跟踪指令执行每一条指令都会显示指令执行后各个寄存器的值和标志位的状态,并显示下一条将要执行的指令代码。显示存储单元的命令D 命令用于检查存储器的内容。命令格式:D D 运用 D 命令可以显示从起始地址到结束地址存储器中的全部字节内容。也可以采用第二种形式显示从起始地址开始的指定字节长度的存储内容。“-D CS:100 010B”是采用的第一种格式,显示起始地址“CS:100 ”开始到“010B ”存储字节的内容。 “D 100 L0C”是采用第二种格式,显示从起始地址从“100”开始的长度为“0C”个字节的内容。如上图在地址后面

9、显示了 16 个字节的数据以及它们所代表的内容。如果有的字节包含 ASCII 码字符,那么该字符将会被显示出来。如果字节的内容不是ASCII 码,这个字节将不被显示,并以“.”表示出来。将数据输入存储器指令E 命令将数据项填充到存储器中。命令格式:E E 指令“-E 200 Hello John”输入起始地址和数据,起始地址为 DS:200 内存字节存储Hello John的 ASCII 码。第二种格式没有数据列表,DEBUG 会假设你想检查存储器字节内容,并在必要时进行修改。对于所显示的字节内容,你可以执行以下四种操作。在此字节处输入新的数据项。DEBUG 将用新输入的内容替换原内容。如果不

10、希望改变原来的字节则直接按回车键。如果不想改变当前字节,而想检查下一个字节则按空格键。如果不想改变当前字节,而想检查上一个字节则输入减号“-” 。3.7 标志寄存器的表示和修改在 DEBUG 中标志寄存器中各个标志位采用以下符号表示方法。标志 代码置位(=1) 代码复位(=0)OF 溢出标志 OV(溢出) NV(未溢出)DF 方向标志 DN(下行) UP(上行)IF 中断标志 EI(允许中断) DI(禁止中断)SF 符号标志 NG(负,否定) PL(正,肯定)ZF 零标志 ZR(零) NZ(非零)AF 辅助进位标志 AC(辅助进位) NA(非辅助进位)PF 奇偶校验标志 PE(偶校验) PO(奇校验)CF 进位标志 CY(进位) NC(非进位)命令“R F”是显示标志寄存器的内容。在所显示的内容之后,将会出现另一个提示符“-”。此时可以输入寄存器代码来修改标志寄存器,如果不修改则只需输入回车。输入寄存器的代码顺序可以是任意的。从磁盘载入文件DEBUG 载入调试的程序有两个方法。通过加载命令载入此文件。命令格式:N L另一种是在刚进入 DEBUG 程序时,输入命令格式:DEBUG

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报