文档介绍:DEBUG使用方法
D
的所在位置及名子,DEBUG执行时将显示符(-)。这时,用户可输入任何一个DEBUG调试命令。
DEBUG命令 
以下为DEBUG使用的调试命令及其简介: 
?显示所有的调试命令 
A汇编8086/8087/8088汇编语言源程序。 
C比较两块内存的内容。 
D显示部分内存的内容。 
E人指定的地址开始把数据送入内存。 
F将指一值填进某一范围的内存。 
G运行内存中的程序。 
H执行十六进制算术运算。 
I从指定输入口输入一道字节值。 
L把文件或磁盘扇区内容装入内存。 
M拷贝某块内存的内容。 
N指定文件名,以便L或W命令读写该文件;指定正调试文件所需的参数。 
O发送一字节值至指定输出口。 
P执行循环程序,重复字符串指令,软中断,或子程序。 
Q结束DEBUG命令执行。 
R显示或修改一个或数个寄存器内容。 
S在内存指定范围内找寻指定的值。 
T执行一条指令,然后显示所有寄存器的内容,所有标志状态,以及下一条要执行的指令(汇编语言格式)。 
U反汇编某一范围内的字节,显示其相应汇编语言源语名。 
W把正调试文件写入磁盘。 
XA分配扩充内存 
XD释放分配的扩充内存。 
XM作扩充内存页的影像。 
XS显示扩充内存的状态。 
命令参数间的隔离 
除命令Q外,所有的调试命令都可使用参数。参数间可用逗号或空格隔开,但只是在十六进制数之间才要求必须隔开。因此,下列命令是等价的: 
dcs: 100 110 
D CS: 100 110 
D,CS:100,110 
指定有效地址 
调试命令中的addres(地址)参数指定内存中的地址。地址分两部分,一部分是段寄存器字母或4位的段地址,另一部分为偏移地址。其中,段寄存器或段地址可以省略。
对命令A,G,L,T,U,W,默认段为CS,对所有其余命令,默认段为DS。所有数值都为十六进制。 
以下为有效地址: 
CS:0100 
04BA:0100 
注意,在段名和偏移值之间要加冒号。 
指定有效地址范围。 
调试命令中的range(范围)参数指定内存中的地址范围。地址范围有两种格式:开始地址和结束地址;开始地址和范围长度(由L指定)。 
例如:从CS:100开始,到10F结束,共16字节范围,可使用两种格式说明: 
CS:100 10F 
CS:100 1 10 
DEBUG:A (汇编)
一、概述
直接汇编8086/80878088汇编语言源程序,汇编结果放内存。 
本命令将汇编语言语句转换成执行的机器码,语句中所有操作数据均为16进制,由1到4个字符组成。
格式: 
A[address] 
参数 
address 
指定输入汇编语言语句的地址。地址为16进制数但实际输入时结尾不必加字符“h”,如果不指定地址,命令A将从上一次汇编结束地的地址开始。
相关命令 
有关在指定地址输入数据的具体说明,参阅DEBUG E命令 
有关反汇编的具体说明,参阅DEBUG U命令。
二、注意事项
使用助记符 
地址段名助记符为CS:,DS:,ES:,SS:。远程返回助记符为RETF。字符串处理助记符必须根据其处理的字符串的长度选择使用。例如,移动字串(16bits)使用MOVSW,移动字节串(8bits)使用MOVSB。 
转移语句和子程序调用的汇编 
汇编命令将根据语句中地址字节移动自动汇编短,近,远转移或调用,生成目标地址。用户也可以使用前缀NEAR或FAR直接说明这类转移或调用。例如:
-a0100:0500 
0100:0500 jmp 502 ;2字节短转移,生成2字节目标地址。 
0100:0502 jmp near 505 ;3字节近转移,生成4字节目标地址。 
0100:0505 jmp for 50a ;5字节远转移,生成8(段+偏移)字节目标地址。
前缀NEAR可以省略为NE。 
字内存地址和字节内存地址的区分 
当仅从操作数本身不能区分究竟是字内存地址还是字节内存地址是地,必须用前缀WORD PRT(字)或BYTE PTR(字节)指字其类型。两者可省略为WO和BY,例如:
dec wo[si] 
neg byte ptr[128]
指定操作数 
DEBUG按常规认方括号内的操作