DEBUGEXE的使用Word文件下载.docx
- 文档编号:7196192
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:21
- 大小:23.96KB
DEBUGEXE的使用Word文件下载.docx
《DEBUGEXE的使用Word文件下载.docx》由会员分享,可在线阅读,更多相关《DEBUGEXE的使用Word文件下载.docx(21页珍藏版)》请在冰点文库上搜索。
输出字节
Oportaddressbyte
Q(Quit)
退出DEBUG状态
Q
R(Register)
显示寄存器
R[registername]
S(Search)
检索字符
Srangelist
T(Trace)
单步/多步跟踪
TorT[address][Value]
U(Unassmble)
反汇编
U[address]orU[range]
W(Write)
文件或数据写盘
W[address[drivesectorsector]]
A(汇编)命令
用途:
把计算机的宏汇编语句直接汇编到内存中.
格式:
A[address]
说明:
“A”是一条逐行汇编命令,当使用“A”命令时,并不直接将16进制字节(机器
码)键入存储器,而键入的是助记符。
但键入的汇编语句被汇编在指定地址的连续单元中.
在“A”命令后没指出地址时,分两种情况:
a.没指定地址同时前面没有使用汇编命令,则语句被汇编到CS:
100开始的区域中.
b.没指定地址,但前面已有汇编命令,则语句被汇编到紧接着前一条汇编语句的后
一个地址单元里。
例
-;
“-”为DEBUG提示符
-A
0CDE:
0100DB‘THISISANEXAMPLE’,‘$’
0113DB‘123456789ABCDEF$’
OCDE:
0133MOVDX,0100
0136MOVAH,09
01381NT21
013AMOVDL,0D
013CMOVAH,02
013EINT21
0140MOVDL,0A
0142MOVAH,02
0144INT21
0146MOVDX,0100
0149MOVAH,09
014BINT21
014D1NT20
014F
*在DEBUG状态下键入的数字都是16进制数,所以不要用H表示为16进制数。
在语句输入完后,只要按ENTER键,即告诉DEBUG用户程序输入完毕,此时回
到DEBUG初始状态。
注意:
(1)DEBUG不能识别操作数是字存储单元,还是字节存储单元。
必须用前缀
“WORDPTR”或“BYTEPTR”来明确指出数据类型。
WORD和BYTE可简写为
WO,BY。
例:
NEGBYTEPTR[l28]
DECWORDPTR[SI]
(2)NEAR前缀可缩写为NE,但FAR前缀不能缩写。
C(比较)命令
比较两个内存区的内容。
Crangeaddress
比较两个内存区的内容,比较长度由range决定,若发现不相等的字节,按下
列格式显示它们的内容。
addr1bytelbyte2addr2
先用D命令显示两个存储区的内容。
-D0100
01005448495320495320—414E204558414D50
01104C45243120322033—2020342035203620
-C0100L6011F;
比较100H和11FH开始的6个字符。
0100544CCDE:
0110
010148450CDE:
0111
010249240CDE:
0112;
不同字符
010353310CDE:
0113
010549320CDE:
0115
D(显示)命令
显示部分存储区的内容。
D[address]或D[range]
显示指定内存单元的内容。
(1)在输入的起始地址中,只键入一个相对偏移量,段地址为DS中。
-D100
0915:
01005448495320495320-414E204558414D50
01104C45243120322033-2034203520362037
01202038203920412042-2043204420452046
(2)若要显示指定范围的内容,则要输入显示的起始和结束地址.
-D0100011F
01104045243120322033-2034203520362037
(3)如果用D命令没有指定地址,则当前D命令开始地址是由前一个D命令所显示
的最后单元后面的单元地址。
E(修改)命令
修改RAM区的单元内容
Eaddress[List]
该命令可以在指定的地址里修改一个或多个字节的内容,同时也可连续的修改
每个字节的内容。
如:
(1)连续修改每个字节的内容
-D0180;
显示0180单元开始的内容
01800000000000000000-0000000000000000
01900000000000000000-0000000000000000
-E0180;
修改开始,每修改—个单元后按空格键再修改第二个单元
018000.1200.3400.5600.7800.1200.5400.990087
018800.2100.AC00.SS00.CB00.BE00.FC00.EF00.BA
019000
-D0180019F;
修改完毕,检查正确否
01801234567812549987-21AC00CBBEFCEFBA
(2)用给定的内容去代替指定范围的内存单元内容。
-d
01500000000000000000-0000000000000000
01600000000000000000-0000000000000000
-e0150‘whatisyourname?
’
-d0150016F
01507768617420697320-796F7572206E616D
016065203F0000000000-0000000000000000
(3)输入一个连接号‘-’,则显示前一个地址单元的内容,若修改就键入一个字节,
然后按“-”,则又显示前一个地址单元内容·
·
。
如显示的单元不修改,则按“-”。
-D0150015F;
从150H到15FH单元内容
0CDD:
015008200800D038041B一5B324A42981l44AC
-E0160;
从160单元开始修改
016025.-;
160单元不修改,键入“-”
015FAC.23-;
15F单元用23替代原先AC
015E44.AA-;
15E单元用AA替代原先44
015D11.55-;
修改完毕
检查修改后的单元内容
0150082008000D38041B-5B324A429811AA23
F(填充)命令
把表中的值填到内存单元中。
FrangeList
如果List所含的字节数比range小,则List被重复使用,如List所含的字节
数比range大,则多余被略去。
-F0280L20“ABCDEF0123456789”;
把ASCⅡ码填入到从280开始的32个单元里
-D0280029F;
检查
02804l42434445463031-3233343536373839
02904142434445463031-3233343536373839
-F0100L9“ABCDEF0123456789”;
删除多余的3-9
-D0100010F;
检查
01004142434445463031-320DOA007038496E
G(执行)命令
执行需运行的程序,并对调试的程序进行断点测试跟踪。
G[=address][address[address·
]]
程序从当前指令开始执行,执行的地址由CS和IP的内容决定。
如用“=ad-
dress”参数取代,则程序从CS:
“=address”开始执行。
0113DB‘123456789ABCDEF$’
0132MOVDX,0100
0135MOVAH,09
01371NT21
0139MOVDl,0D
013BMOVAH,02
OCDD:
013DINT21
013FMOVDL,0A
0141MOVAH,02
0143INT21
0145MOVDX.0113
0148MOVAH,09
014AINT21
014CINT20
014E
-G;
从CS:
IP=0CDD:
0100开始运行结果在显示器上显示出
THlSISANEXAMPLE
123456789ABCDEF
Programterminatednormally
-G=0132
THISISANEXAMPlE
-G=013F
-G=0132013F;
程序从0132开始运行,在013F处设置一个断点
AX=020DBX=0000CX=0000DX=010DSP=FFEEBP=0000SI=0000DI=0000
DS=0CDDES=0CDDSS=OCDDCS=0CDDIP=013FNVUPEIPLNZNAPONC
0CDD:
013FB20AMOVDL,0A
(1)一旦程序运行结束(DEBUG显示“programterminatednormally”信息),在它
再次执行之前,必须重新启动程序。
(2)地址参数指向的位置必须含有合法的8086/8088指令码,如指定第一个字节为
非法指令,那么会出现不可预测的结果。
(3)堆栈指示器必须是合法的,并且对G命令有6个字节可用,否则会出现不可预
测的结果.
(4)对断点只键入一个偏移量,G命令设该段在CS寄存器中。
H(16进制运算)命令
对两个16进制数进行加,减,然后显示出和与差。
HValueValue
-HAB
0015FFFF;
和为0015H,差为FFFFH
I(输入)命令
用途:
从指定的端口显示出输入数据字节。
Iportaddtess
-I200
FF;
从200端口读入FF字节
L(装入)命令
把磁盘上的内容装入内存。
L或Laddress
此命令装入在CS:
5CH格式化的文件控制块所指定的文件,所以在使用这种格
式的L命令以前,在CS:
5CH中必须有已格式化的文件标识符,这通常用N命令采实现。
若命令没规定地址,则文件装入到CS:
100开始的内存区中,若命令规定了地址,则
装入到指定的区域中,但对具有扩展名的.COM或.EXE的文件,则始终是装入到CS:
100
的内存区中,即使命令中指定了地址,此地址也被忽略。
A>
DEBUG
-NSS.COM
-L;
把SS.COM文件从磁盘装人内存
-U0114011D;
用反汇编检查装人内存程序正确否(文件见W命令)
0CF3:
0114BA0001MOVDX,0100
0117B409MOVAH,09
0119CD21INT21
011BCD201NT20
011D6FDB6F
-D0100011D
01005448495320495320-414E204558414D50
01104C452024BA0001B4-09CD21CD206F
M(传送)命令
把由range规定的内存单元区域的内容传送到address开始的单元。
Mrangeaddress
传送期间总是执行复盖传送,源区域的数据保持不变。
-DDS:
0100011F
0100CD2000A0009AEEFE-IDF0F50242092E03
0110424F4D535045433D-433A5C434F4D4D41
0000001F
00004209BD0242093B08-0101010002FFFFFF
00104209BD0242093B08-0101010002FFFFFF
-DCS:
050005lF
L
0500CD2000A0009AEEFE-1DF0F50242092E03
0510424F4D535045433D-433A5C434F4D4D41
-DCS:
0800080F
08000000000000000000-0000000000000000
-MDS:
0000000FDS:
0100;
把DS:
0000开始的000FH个单元内容传送到CS:
100开始的单元里
0100010F;
检查传送结果
0CDD:
01004209BD0242093B08-0101010002FFFFFF
-MDS:
0100010FCS:
0800;
把DS:
100开始的0FH个单元内容传送到CS:
800开始的单元里
0800080F;
08004209BD0242093B08-0101010002FFFFFF
N(命名)命令
给文件定名,用于文件存盘或装入内存区。
Nfilespec[filespec…]
用命令中给定的两个文件标识符,格式化在CS:
5CH和CS:
6CH的两个文件控制块(若在
调用DEBUG程序时具有一个文件标识符,则它已格式化在CS:
5CH的文件控制块)中,文件控制块
是为L和W命令提供所要求的文件名。
所有文件标识符和参数按键人的模式,放在CS:
81H开始的参数保存区中,在CS:
80H
中保存输入的字符个数,在寄存器AX中保存前两个文件标识符中的驱动器标志。
A>
DEBUG
-NSS.COM;
给文件命名为SS,扩展名为COM(文件见W命令)
-L
-U0114011D
0CF3:
0114BA0001MOVDX,0'
00
0117B409MOVAH,09
011BCD20INT20
OCF3:
-D0100011D
01005448495320495320-414E204558414050
-G
THISISANEXAMPLE
O(输出)命令
向指定的端口输出一个字节。
Oprotaddressbyte
-O23499
Q(退出)命令
退出DEBUG状态
Q命令不保留正在内存中运行的文件,若保留需用‘W’命令,DEBUO返回
到命令处理程序,然后显示出正常的命令提示.
A:
>
DEBUGSS.COM
-L
-U0114011D
0114BA0001MOVDX,0100
0117B409MOVAH,09
0119CD21INT21
-Q;
退出DEBUG
R(寄存器)命令
显示和修改各寄存器的内容
格式:
R[Registername]
当R命令后面不带任何参数时,显示出13个16位寄存器的内容,同时又显
示出标志寄存器各位状态。
最后显示出下一条要执行的指令地址及指令内容。
当R命令后面带参数时,显示出该寄存器的内容,同时又可进行修改。
-R;
没有参数
AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=OCDDES=OCDDSS=0CDDCS=0CDDIP=0100NVUPEIPLNZNAPONC
01004DDECBP
-RAX;
显示AX寄存器的内容
AX0000;
AX当前值
:
ACEB;
用ACEB取代当前值
修改完毕,检查
AXACEB;
显示出修改后的AX寄存器内容
DEBUG提示符
标志寄存器共有9个标志位,其中追踪标志T不能改变,其它8个标志位可以显示
和修改,并且以二个字母的代码来分别表示各位状态,显示次序和符号如下:
-RF
NVUPEIPLNZNAPONC-OVEIZRPE;
修改NV,EI,NZ,PO标志位
OVUPEIPLZRNAPENC-;
检查修改结果,返回
-RF
OVUPEIPLZRNAPENC-DNNGACCY;
修改UP,PL,NA,NC标志位
OVDNEINGZRACPECY-;
-;
DEBUG提示符
标志
置位(SET)
复位(CLEAR)
溢出overflow
OV
NV
方向Direction
DN
UP
中断interrupt
EI
DI
符号Sign
NG
PL
零Zero
ZR
NZ
辅助进位Anxigiarycarry
AC
NA
奇偶Parity
PE
PO
进位carry
CY
NC
S(检索)命令
在指定的range范围内找到List规定的字符。
SrangeList
说明:
显示出符合规定字符处的各地址,如显示提示符“-”,则表示没有发现规定字符。
如对寻找范围内的起始地址只键人一个相对偏移量,S命令假定该段包含在DS寄存器中。
-D0100010F
OCF3:
01005448495320495320-414E204558414D50THISISANEXAMP
-SOl00O1OF20;
在100到140区间里,寻找20H字符
0114
0107
010A
-S0100010FAA;
在100H到10FH区间里,寻找AAH字符。
没检索到AAH字符,“-”DEBUG显示符。
T(跟踪)命令
执行以CS:
IP(或者=address的规定地址)中指令开始的一个或几个指令,
并显示出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DEBUGEXE 使用