【2017年整理】DEBUG命令简介

上传人:豆浆 文档编号:988539 上传时间:2017-05-24 格式:DOC 页数:7 大小:68KB
返回 下载 相关 举报
【2017年整理】DEBUG命令简介_第1页
第1页 / 共7页
【2017年整理】DEBUG命令简介_第2页
第2页 / 共7页
【2017年整理】DEBUG命令简介_第3页
第3页 / 共7页
【2017年整理】DEBUG命令简介_第4页
第4页 / 共7页
【2017年整理】DEBUG命令简介_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《【2017年整理】DEBUG命令简介》由会员分享,可在线阅读,更多相关《【2017年整理】DEBUG命令简介(7页珍藏版)》请在金锄头文库上搜索。

1、1. DEBUG 命令简介启动 DEBUG 的一般命令如下:DEBUG 文件名 参数表其中:文件名指定被调试的文件,其包括名和后缀,参数表是被调试文件运行时所需要的参数。被调试的文件可以是系统中的任何文件,但通常它们的后缀为.EXE 或.COM。当 DEBUG 启动成功后,将显示连接符“-” ,这时,可输入各种 DEBUG 命令。DEBUG中标志位的符号表示如表 1 所示,其所有命令及其含义如表 2 所示。关于参数的几点说明:1. 进制:在DEBUG 中输入或显示的数据都是十六进制形式表 1 DEBUG 中标志位的符号表示标志名称 溢出 OF 方向 DF 中断 IF 负号 SF 零ZF 辅助进

2、位 AF 奇偶 PF 进位 CF置位状态 OV DN EI NG ZR AC PE CY复位状态 NV UP DI PL NZ NA PO NC表 2 DEBUG 命令及其含义命令格式 功能说明A 地址 输入汇编指令C 范围 起始地址 对由“范围”指定的区域与“起始地址”指定的同大小区域进行比较,显示不相同的单元D 范围 显示指定范围内的内存单元内容E 地址 字节值表 用值表中的值替换从“地址”开始的内存单元内容F 范围 字节值表 用指定的字节值表来填充内存区域G =起始地址 断点地址 从起点(或当前地点 )开始执行,到终点结束H 数值1 数值2 显示二个十六进制数值之和、差I 端口地址 从端

3、口输入L 地址 驱动器号 扇区 扇区数 从磁盘读M 范围 地址 把“范围”内的字节值传送到从“地址”开始的单元N 文件标识符 文件标识符 指定文件名,为读/写文件做准备O 端口地址 字节值 向端口输出P =地址 指令数 按执行过程,但不进入子程序调用或软中断Q 退出DEBUG,不保存正在调试的文件R 寄存器名 显示和修改寄存器内容S 范围 字节值表 在内存区域内搜索指定的字节值表。如果找到,显示起始地址,否则,什么也不显示T =地址 指令数 跟踪执行,从起点( 或当前地点) 执行若干条指令U 范围 反汇编,显示机器码所对应的汇编指令W 地址 驱动器号 扇区 扇区数 向磁盘写内容,( BX、CX

4、)为写入字节数2. 分隔:命令和参数、参数和参数之间要用空格、逗号或制表符等分隔3. 地址:用“段值:偏移量”的形式来表示地址,也可用段寄存器来代表“段值”例如:1000:0,ds:10,es:200,cs:30等4. 范围:用来表示地址范围,从哪个地址开始,到哪个地址结束。它有二种表示方式: 地址 地址前者表示起始地址,要用“段值:偏移量”来表达,后者表示终止地址,只用“偏移量”来表示 地址 长度前者表示起始地址,要用“段值:偏移量”来表达,后者表示该区域的大小,用字母L开头的数值来表示例如:100:50 100段值为 100,偏移量从 50 到 100 的内存区域,100:50 L100段

5、值为 100,偏移量从 50 开始的 100 个字节区域。5. 端口地址:二位十六进制数值6. 字节值:二位十六进制数值7. 字节值表:由若干个字节值组成,也可以是用引号括起来的字符串8. 驱动器号:0驱动器A、1驱动器B、2 驱动器C、3驱动器D等关于使用命令的几点说明:1. 在DEBUG中的提示符 “-”下才能输入命令,在按“回车”键后,该命令才开始执行2. 命令是单个字母,命令和参数的大小写可混合输入3. 可用F1、F2、F3、Ins、Del 、左移键、右移键等编辑键来编辑本行命令4. 当命令出现语法错误时,将在出错位置显示“ Error”5. 可用C或Break来终止当前命令的执行,还

6、可用S来暂停屏幕显示 (当连续不断地显示信息时)例 2.1:启动 DEBUG,并装入 test.exe 文件( 假设该文件已存在)。解:方法 1:debug test.exe方法 2:debug-n test.exe-l例 2.2:比较以 DS 为段值,偏移量从 10 到 50 的内存区域与从地址 100:20 开始的内存区域。解:-C DS:10 50 100:20 或 -C DS:10 L41 100:20例 2.3:显示以 DS 为段值,偏移量从 10 到 50 内存区域的单元内容,然后用abc来填充它。解:-D DS:10 50 或 -D DS:10 L41-F DS:10 50 ab

7、c例 2.4:显示十六进制 1234 与 3421 之和、差。解:-H 1234 4321例 2.5:把数据段区域 DS:0-40 内的内容传送给从附加段 ES:10 开始的内存中。解:-M DS:0 40 ES:10例 2.6:在数据段区域 DS:0-40 内查找是否有字符串CIH。解:-S DS:0 40 CIH2. Debug 详细DEBUG 主要命令DEBUG 是为汇编语言设计的一种高度工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。一、DEBUG 程序的调用在 DOS 的提示符下,可键入命令:C:DEBUG D:PATHFILENAME.EXTPARM1PA

8、RM2其中,文件名是被调试文件的名字。如用户键入文件,则 DEBUG 将指定的文件装入存储器中,用户可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用 DEBUG 命令 N 和 L 把需要的文件装入存储器后再进行调试。命令中的 D 指定驱动器PATH 为路径, PARM1 和 PARM2 则为运行被调试文件时所需要的命令参数。 在 DEBUG 程序调入后,将出现提示符,此时就可用 DEBUG 命令来调试程序。二、DEBUG 的主要命令1) -D 显示存储单元(DUMP)_Daddress或_Drange 例如,按指定范围显示存储单元内容的方法为:-d100 12018E

9、4: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.718E4:0120 8B其中 0100 至 0120 是 DEBUG 显示的单元内容,左边用十六进制表示每个字节,右边用ASCII 字符表示每个字节, 表示不可显示的字符。这里没有指定段地址, D 命令自动显示DS 段的内容。如果只指定首地址,则显示从首地址开始的 80 个字节的内容。如果完全没有指定地址,则显示上一个 D 命令显

10、示的最后一个单元后的内容。 2) -E 修改存储单元内容输入命令 E(ENTER),有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为:-E address list例如,-E DS:100 F3XYZ8D其中 F3, X,Y,Z 和各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100 到 0104 的原先的内容。第二种格式则是采用逐个单元相继修改的方法。命令格式为:-E address例如,-E DS:100则可能显示为:18E4: 0100 89.-如果需要把该单元的内容修改为 78,则用户可以直接键入 78,再按“空格”键可接着显示下一个单元

11、的内容,如下:18E4:0100 89.78 1B.-这样,用户可以不断修改相继单元的内容,直到用 ENTER 键结束该命令为止。填写命令 F(FILL),其格式为:-F range list例如:-F 4BA:0100 5 F3XYZ8D使 04BA:01000104 单元包含指定的五个字节的内容。如果 list 中的字节数超过指定的范围,则忽略超过的项;如果 list 的字节数小于指定的范围,则重复使用 list 填入,直到填满指定的所有单元为止。3) -R 检查和修改寄存器内容的命令 R(register)它有三种格式如下:显示 CPU 内所有寄存器内容和标志位状态,其格式为:-R例如,

12、-rAX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC18E4:0100 C70604023801 MOV WORD PTR 0204,0138 DS:0204=0000显示和修改某个寄存器内容,其格式为:-R register name例如,键入-R AX系统将响应如下:AX F1F4:即 AX 寄存器的当前内容为 F1F4,如不修改则按 ENTER 键,否则,可键入欲修改的内容,如:-R b

13、xBX 0369:059F则把 BX 寄存器的内容修改为 059F。显示和修改标志位状态,命令格式为: -RF 系统将响应,如: OV DN EI NG ZR AC PE CY-此时,如不修改其内容可按 ENTER 键,否则,可键入欲修改的内容,如:OV DN EI NG ZR AC PE CY-PONZDINV即可,可见键入的顺序可以是任意的。4) -G 运行命令 G其格式为:-G=address1address2address3其中,地址 1 指定了运行的起始地址,如不指定则从当前的 CS:IP 开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的

14、内容,和下一条将要执行的指令。5) -T 跟踪命令 T(Trace)有两种格式:逐条指令跟踪-T =address从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的 CS:IP 开始执行。多条指令跟踪-T =addressvalue从指定地址起执行 n 条指令后停下来,n 由 value 指定。6) -A 汇编命令 A(Assemble)其格式为:-Aaddress该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG 把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如 100

15、D。7) -U 反汇编命令 U(Unassemble)有两种格式。从指定地址开始,反汇编 32 个字节,其格式为: -Uaddress例如:-u100 18E4:0100 C70604023801 MOV WORD PTR0204,013818E4:0106 C70606020002 MOV WORD PTR0206,020018E4:010C C70606020202 MOV WORD PTR0208,020218E4:0112 BBO4O2 MOV BX,020418E4:0115 E80200 CALL 011A18E4:0118 CD20 INT 2018E4:011A 50 PUSH AX18E4:011B 51 PUSH CX18E4:011C 56 PUSH SI18E4:011D 57 PUSH DI18E4:011E 8B37 MOV SI,BX如果地址被省略,则从上一

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

当前位置:首页 > 行业资料 > 其它行业文档

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