附录六X86汇编语言程序调试工具DEBUG的使用.DOC
文本预览下载声明
附录七 X86汇编语言程序调试工具 DEBUG 使用简介
DEBUG是DOS系统的DOS外部命令形式外部命令名为DEBUGEXE,一般存放在DOS子目录下DEBUG [驱动器名][路径][文件名[.扩展名]][参数1][参数2] 回车 例如C:\DOSDEBUG A.EXE 回车进入DEBUG提示符“”,就表示可以接受DEBUG命令了。 DEBUG命令是在提示符“”之后,由键盘键入。每条命令以单个字母的命令符开头,然后是命令操作参数操作参数与命令符之间用空格隔开,操作参数之间用空格或逗号隔开所用数均为十六进制数,不必H。 命令结束符是回车键Enter(在下面的命令格式中,不再单独标出)。Ctrl+Break可中止正在执行的DEBUG命令,并返回提示符“—”。
DEBUG常用命令列表(其它命令请参考专门资料)
命令符 功 能 命令符 功 能 1 ? DEBUG命令列表 8 F 填写内存 2 Q 退出DEBUG返回DOS 9 M 内存内容传送 3 D 显示内存单元内容 10 I 端口输入 4 R 显示和修改寄存器内容 11 O 端口输出 5 U 反汇编 12 T 单步或多步跟踪程序 6 A 汇编 13 P 单步或多步运行程序 7 E 修改内存单元内容 14 G 连续运行程序 常用命令介绍如下(以下有下划线处表示是从键盘输入的内容):
告警:使用以下关于修改内存的命令A、E、F、M等,应注意内存地址(包括段基值和偏移地址)的准确性。错误地更新了系统程序区,可能会造成死机!写磁盘的DEBUG命令(本文未列出)更应慎重使用!
DEBUG命令列表
—?
屏幕显示DEBUG命令列表。
返回DOS命令Q(Quit)
—Q
退出DEBUG程序并返回DOS。注意此命令不能将内存中的文件存盘。
显示内存单元内容命令D(Dump)
—D[地址或范围]
其中“范围”包括起始地址和结束地址,可以在地址前加段前缀。例如:
—D1366:110 11F
屏幕显示为
1366:0110 24 09 7E 21 00 00 00 00-34 00 00 00 00 00 55 13 $.~ !....4.....U.
上面分左、中、右三部分显示:左边部分1366:0110是内存单元地址,中间及右边部分分别是1366:0110至1366:011F内存单元内容的16进制数表示及ASCII字符(“.”表示非ASCII码的数字)。本例中‘24’、‘7E’、‘21’、‘34’和‘55’分别是字符‘$’、‘~ ’、‘!’、‘4’和‘U’的ASCII码00’和‘13’则不是ASCII码D 200
默认当前DS为段前缀,显示自DS:200地址开始128字节单元的内容。
—D ES:100 1FF
显示ES:100到ES:1FF地址范围的内容。
—D
如果是进入DEBUG后初次使用此格式的D命令,则默认CS为段寄存器。如果前面已经用过D显示命令,则接续前面的地址显示其后面的128字节单元的内容。
显示和修改寄存器内容的命令R (Register)
显示各寄存器内容
—R
显示为(例):
AX=0000 BX=0000 CX=004A DX=0000 SP=0064 BP=0000 SI=0000 DI=0000
DS=0785 ES=0785 SS=07C6 CS=07C6 IP=0008 NV UP DI PL NZ NA PO NC
07C6:0008 B8C507 MOV AX,07C5
IP指向的是下一指令的偏移地址。上面最后一行中显示出指令“MOV AX,07C5” 、其指令机器码“ B8C507”及机器码存放于内存的起始地址CS:IP=07C6:0008。
标志寄存器各标志位状态符号含义
标志名 置位(为1) 复位(为0) 溢出overflow(是/否) OV NV 方向direction(减/增) DN UP 中断interrupt(允许/屏蔽) EI DI 符号sign(负/正) NG PL 零zero(是/否) ZR NZ 辅助进位auxliary carry(/)(是/否) AC NA 奇偶parity(偶/奇) PE PO 进位carry(是/否) CY NC
显示并修改指定寄存器内容
—R寄存器名
RF
NV UP EI PL NZ NA PO NC -PE DI DN
显示标志寄存器内容,键入待修改的标志符号“PE DI DN”后,可以看到修改后标志寄存器的内容,如下所示:
—RF
NV DN DI PL NZ NA PE NC -
反汇编命令U (Unassemble)
按给定起始地址反汇编
—U [地址]
该命令从指定的地址开始
显示全部