① debug常用命令
以下是 Debug 命令列表:
? 显示 Debug 命令列表。
a 汇编 8086/8087/8088 记忆码。
c 比较内存的两个部分。
d 显示部分内存的内容。
e 从指定地址开始,将数据输入到内存。
f 使用指定值填充一段内存。
g 运行在内存中的可执行文件。
h 执行十六进制运算。
i 显示来自特定端口的 1 字节值。
l 将文件或磁盘扇区内容加载到内存。
m 复制内存块中的内容
/n 为 l 或 w 命令指定文件,或者指定正在测试的文件的参数。
o 向输出端口发送 1 个字节的值。
p 执行循环、重复的字符串指令、软件中断或子例程。
q 停止 Debug 会话。
r 显示或改变一个或多个寄存器。
s 在部分内存中搜索一个或多个字节值的模式。
t 执行一条指令,然后显示所有寄存器的内容、所有标志的状态和 Debug 下一步要执行的指令的解码形式。
u 反汇编字节并显示相应的原语句。
w 将被测试文件写入磁盘。
xa 分配扩展内存。
xd 释放扩展内存。
xm 映射扩展内存页。
xs 显示扩展内存的状态。
② 求debug命令详解
DEBUG的常用命令
(1)汇编命令 A
格式:A[起始地址]
功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省
起始地址,则从当前CS:100 地址开始存放。A 命令按行汇编,主要是用于小段
程序的汇编或对目标程序的修改。
(2)反汇编命令 U
格式1:U[起始地址]
格式2:U[起始地址][结束地址|字节数]
功能:格式1 从指定起始地址处开始将32 个字节的目标代码转换成汇编指令形
式,缺省起始地址,则从当前地址CS:IP 开始。
格式2 将指定范围的内存单元中的目标代码转换成汇编指令。
(3)显示、修改寄存器命令 R
格式:R[寄存器名]
功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,
则按以下格式显示所有寄存器的内容及当前值(不能修改)。
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000
DI=0000 DS=3000 ES=23A0 CS=138E IP=0000
NV UP DI PL NZ NA PO NC
138E:0000 MOV AX,1234
-R AX ;输入命令
AX 0014 ;显示AX 的内容
: ;供修改,不修改按回车。
若对标志寄存器进行修改,输入:-RF
屏幕显示如下信息,分别表示OF、DF、IF、SF、ZF、AF、PF、CF 的状态。
NV UP DI PL NZ NA PO NC
不修改按回车键。要修改需个别输入一个或多个此标志的相反值,再按回车键。
R 命令只能显示、修改16 位寄存器。
(4)显示存储单元命令 D
格式1:D[起始地址]
格式2:D[起始地址][结束地址|字节数]
功能:格式1 从起始地址开始按十六进制显示80H 个单元的内容,每行16 个单
元,共8 行,每行右边显示16 个单元的ASCII 码,不可显示的ASCII 码则显示
“·”。格式2 显示指定范围内存储单元的内容,其他显示方式与格式1 一样。
如果缺省起始地址或地址范围,则从当前的地址开始按格式1 显示。
例如: -D 200 ;表示从DS:0200H 开始显示128 个单元内容
-D 100 120 ;表示显示DS:0100-DS:0120 单元的内容
说明:在DEBUG 中,地址表示方式有如下形式:
段寄存器名:相对地址,如:DS:100
段基值:偏移地址(相对地址),如:23A0:1500
(5)修改存储单元命令 E
格式1:E[起始地址] [内容表]
格式2:E[地址]
功能:格式1 按内容表的内容修改从起始地址开始的多个存储单元内容,即用内
容表指定的内容来代替存储单元当前内容。
例如:—E DS:0100 'VAR' 12 34
表示从DS:0100 为起始单元的连续五个字节单元内容依次被修改为
'V'、'A'、'R'、12H、34H。
格式2 是逐个修改指定地址单元的当前内容。
如:—E DS:0010
156F:0010 41.5F
其中156F:0010 单元原来的值是41H,5FH 为输入的修改值。若只修改一个单元
的内容,这时按回车键即可;若还想继续修改下一个单元内容,此时应按空格键,
就显示下一个单元的内容,需修改就键入新的内容,不修改再按空格跳过,如此
重复直到修改完毕,按回车键返回DEBUG“-”提示符。如果在修改过程中,将
空格键换成按“-”键,则表示可以修改前一个单元的内容。
(6)运行命令 G
格式:G[=起始地址][第一断点地址[第二断点地址……]]
功能:CPU 从指定起始地址开始执行,依次在第一、第二等断点处中断。若缺省
起始地址,则从当前CS:IP 指示地址开始执行一条指令。最多可设置10 个断点。
(7)跟踪命令 T
格式:T[起始地址][正整数]
功能:从指定地址开始执行‘正整数’条指令,若缺省‘正整数’,表示执行一
条指令,若两项都缺省,表示从当前CS:IP 指示地址开始执行一条指令。
(8)指定文件命令 N
格式:N<文件名或扩展名>
功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L 命令和
W 命令之前。
(9)装入命令 L
格式1:L[起始地址][盘符号][扇区号][扇区数]
格式2:L[起始地址]
功能:格式1 根据盘符号,将指定扇区的内容装入到指定起始地址的存储区中。
格式2 将N 命令指出的文件装入到指定起始地址的存储区中,若省略起始地址,
则装入到CS:100 处或按原来文件定位约定装入到相应位置。
(10)写磁盘命令 W
格式1:W<起始地址>[驱动器号]<起始扇区><扇区数>
格式2:W[起始地址]
功能:格式1 把指定地址开始的内容数据写到磁盘上指定的扇区中。
格式2 将起始地址的BX×10000H+CX 个字节内容存放到由N 命令指定的文件中。
在格式2 的W 命令之前,除用N 命令指定存盘的文件名外,还必须将要写的字节
数用R 命令送入BX 和CX 中。
(11)退出命令 Q
格式:Q
功能:退出DEBUG,返回到操作系统。
以上介绍的是DEBUG 常用命令,其他命令请参考有关书籍。