2024年5月2日发(作者:)
附录2
动态调试程序的使用
是专为汇编语言设计的一种调试工具,可用来检查、修改存储单元和寄
存
器的内容,装入、存储及启动运行程序,也可用 汇编简单的汇编语言程序。
( 注: DEBUG 只能在 DOS 或 WINDOWS 98 及WINDOWS ME 下运行 )
DEBUG的命令表
命 令
A(Assemble)
C(Compare)
D(Dump)
E(Enter)
F(Fill)
G(GO)
H(Hexarthmetic)
I(Input)
L(Load)
M(Move)
N(Name)
O(Output)
Q(Quit)
R(Register)
S(Search)
T(Trace)
U(Unassmble)
W(Write)
A (汇编)命令
用途:把计算机的宏汇编语句直接汇编到内存中.
格式:A[address]
说明:“A”是一条逐行汇编命令,当使用“A”命令时,并不直接将16进制字节(机器
码)键入存储器,而键入的是助记符。但键入的汇编语句被汇编在指定地址的连续单元中.
在“A”命令后没指出地址时,分两种情况:
目 的
汇编语句
比较内存
显示内存
改变内存
填充内存
执行程序
十六进制运算
输入
装入内存
传送内存
定义文件
输出字节
退出DEBUG状态
显示寄存器
检索字符
单步/多步跟踪
反汇编
文件或数据写盘
格 式
A[address]
C range address
D[address]
D[range]
E address list
F range list
G[=address] [address]
H Value Value
I port address
L[address]
M range range
N[d:[path]filename[.exe]]
O port address byte
Q
R[register name]
S range list
T or T[address][Value]
U[address] or U[range]
W[address[drive sector sector ] ]
a.没指定地址同时前面没有使用汇编命令,则语句被汇编到CS:100开始的区域中.
b.没指定地址,但前面已有汇编命令,则语句被汇编到紧接着前一条汇编语句的后
一个地址单元里。
例
- ;“-”为DEBUG提示符
-A
0CDE:0100 DB ‘THIS IS AN EXAMPLE’,‘$’
0CDE:0113 DB ‘1 2 3 4 5 6 7 8 9 A B C D E F $’
OCDE:0133 MOV DX,0100
0CDE:0136 MOV AH,09
0CDE:0138 1NT 21
0CDE:013A MOV DL,0D
0CDE:013C MOV AH,02
0CDE:013E INT 21
0CDE:0140 MOV DL,0A
0CDE:0142 MOV AH,02
0CDE:0144 INT 21
0CDE:0146 MOV DX,0100
0CDE:0149 MOV AH,09
0CDE:014B INT 21
0CDE:014D 1NT 20
0CDE:014F
- ;“-”为DEBUG提示符
*在DEBUG状态下键入的数字都是16进制数,所以不要用H表示为16进制数。
在语句输入完后,只要按ENTER键,即告诉DEBUG用户程序输入完毕,此时回
到DEBUG初始状态。
注意:
(1)DEBUG不能识别操作数是字存储单元,还是字节存储单元。必须用前缀
“WORD PTR”或“BYTE PTR”来明确指出数据类型。 WORD 和 BYTE 可简写为
WO,BY。
例: NEG BYTE PTR[l28]
DEC WORD PTR[SI]
(2)NEAR前缀可缩写为NE,但FAR前缀不能缩写。
C(比较)命令
用途:比较两个内存区的内容。
格式: C range address
说明:比较两个内存区的内容,比较长度由range决定,若发现不相等的字节,按下
列格式显示它们的内容。
addr1 bytel byte2 addr2
例: 先用 D 命令显示两个存储区的内容。
-D 0100
发布评论