《MASM_DEBUG主要命令》由会员分享,可在线阅读,更多相关《MASM_DEBUG主要命令(18页珍藏版)》请在金锄头文库上搜索。
1、DEBUG主要命令1、DEBUG程序的调用 在DOS的提示符下,可键入命令: CDEBUG d: Pathfilename.extparm1parm2 其中,文件名是被调试文件的名字(只能调入后缀 为.exe或.com两类文件)。如用户键入文件名,则 DEBUG将指定的文件装入存储器中,用户可对其进行调 试。如果未健入文件名,则用户可以用当前存储器的 内容工作,或者用DEBUG命令N和L把需要的文件装入存 储器后再进行调试。命令中的d指定驱动器,Path为路 径,parm1和parm2则为运行被调试文件时所需要的命 令参数。 在DEBUG程序调入后,将出现提示符“-”,此时 就可用DEBUG命
2、令来调试程序。2、DEBUG的主要命令 1)显示存储单元的命令D(DUMP),格式为: -Daddress或 -Drange 例如,按指定范围显示存储单元内容的方法为: -d0100 012018E4:0100 C7 06 04 02 38 01 C7 06-06 02 00 02 C7 06 08 02 G 8.GG18E4:0110 02 02 BB 04 02 E8 02 00-CD 20 50 51 56 57 8B 37jhM PQVW718E4: 0120 8B 其中 0100至 0120是 DEBUG显示的单元内容。左边用 十六进制表示每个字节,右边用 ASCll字将表示每个 字
3、节,表示不可显示的字符。这里没有指定段地址,D 命令自动显示DS段的内容。如果只指定首地址,则显 示从首地址开始的80个字节的内容。如果完全没有指 定地址,则显示上一个D命令显示的最后一个单元后的 内容。2)修改存储单元内容的命令有两种。 输入命令E(Enter),有两种格式如下 : 第一种格式可以用给定的内容表来替代指 定范围的存储单元内容。命令格式为: -E address list例如,-E DS: 100 F3XYZ8D其中F3,X,Y,Z和 8D各占一个 字节,该命令可以用这五个字节来替代存储单 元DS: 0100到 0104的原先的内容。第二种格式则是采用逐个单元相继修改的方 法。
4、命令格式为; -E address 例如,-e cs:100 则可能显示为: 18E4:0100 89- 如果需要把该单元的内容修改为78,则 用户可以直接键入78,再按“空格”键可接着 显示下一个单元的内容,如下: 18E4:0100 89.781 1B. 这样,用户可以不断修改相继单元的内容, 直到用inter键结束该命令为止。填写命令F(Fill),其格式为: -F range list例如:-f 4BA: 0100 5F3XYZ8D 使04BA:0100-0104单元包含指定的 五个字节的内容。如果list中的字节数 超过指定的范围,则忽略超过的项;如 果list的字节数小于指定的范围
5、,则重 复使用list填入,直到填满指定的所有 单元为止。3)检查和修改寄存器内容的命令 R(Register),它有三种格式如下:显示CPU内所有寄存器内容和标志位状 态,其格式为: -R 例如,-rAX0000 BX=0000 CX=010A DX=0000 Sp=FFFE Bp=0000 SI=0000 DI0000DS18E4 ES18E4 SS=18E4 CS=18E4 IP0100 NV UP DI PL NZ NA PO NC18E4:0100 C70604023801MOV WORD PTR 0204,0138DS: 0204=0000显示和修改某个寄存器内容,其格式为: -R
6、 register name 例如,键入 -r ax 系统将响应如下: AX F1F4 : 即AX寄存器的当前内容为F1F4,如不修改则按 Enter键,否则,可键入修改的内容,如。 -r bx BX 0369 :059F 则把BX寄存器的内容修改为059F。显示和修改标志位状态,命令格式为 : -RF系统将响应,如:OV DN EI NG ZR AC PE CY-此时,如不修改其内容可按enter键,否 则,可键入欲修改的内容,如:OV DN EI NG ZR AC PE CY-PO NZ DI NV即可,可见键入的顺序可以是任意的。4)运行命令G,其格式为-G address1addres
7、s2address3. 其中,地址1指定了运行的起始地址 如不指定则从当前的CS:IP开始运行 。后面的地址均为断点地址,当指令执 行到断点时,就停止招待并显示当前所 有寄存器及标志位的内容,和下一条将 要招待的指令。5)跟踪命令T(Trace),有两种格式; 逐条指令跟踪 -T=addess 从指定地址起执行一条指令后停下来, 显示所有寄存器内容及标志位的值。如 未指定地址则从当前的cs:IP开始执行 。 多条指个跟踪 -T=addressvalue 从指定地址起执行n条指令后停下来,n 由value指定。6)汇编命令A(Assemble),其格式为: -Aaddress 该命令允许键入汇编
8、语言语句,并 能把它们汇编成机器代码,相继地存放 在从指定地址开始的存储区中。必须注 意:DEBUG把健入的数字均看成十六进制 数,所以如要键八十进制数,则其后应 加以说明,如100D。7)反汇编命令U(Unassemble),有两种格式。 从指定地址开始,反汇编32个字节,其格式为: -Uaddress 例如: -U100 18E4:0100 C70604023801 MOV WORD PTR0204,0138 18E4:0106 C70606020002 MOV WORD PTR 0206,0200 18E4:0F0C C70608020202 MOV WORD PTR 0208,0202
9、 18E4:0112 BB0402 MOV BX,0204 18E4:0115 E80200 CALL 011A 18E4:0118 CD20 INT 20 18E4:011A 50 PUSH AX 18E4:011B 51 PUSH CX 18E4:011C 56 PUSH SI 18E4:011D 57 PUSH DI 18E4:011E 8B37 MOV SI,BX如果地址被省略,则从上一个U命令的最后一条指令的下一个单元 开始显示32个字节。 对指定范围内的存储单元进行反汇编,格式为: -U range 例如: -u100 10C18E4:0100 C70604023801 MOV W
10、ORD PTR 0204,013818E4:0106 C70606020002 MOV WORD PTR 0206,020018E4:010C C70608020202 MOV WORD PTR 0208,0202或 -U100 11218E4:0100 C70604023801 MOV WORD PTR 0204,013818E4:0106 C70606020002 MOV WORD PTR 0206,020018E4:010C C70608020202 MOV WORD 0208,0202 可见这两种格式是等效的。8)命名命令N(Name),其格式为:-N filespecs filesp
11、ecs 命令把两个文件标识符格式化在cs:5CH 和CS:6CH的两个文件控制块中,以便在 其后用L或w命令把文件装入或存盘。 filespecs的格式可以是: d:Path filename.ext 例如,-N myprog -L 可把文件myprog装入存储器。9)装入命令L(Load),有两种功能 。 把磁盘上指定扇区范围的内容装 入到存储器从指定地址开始的区域中。 其格式为:-Laddress drive sector sector装入指定文件,其格式为:-L address此命令装入已在CS:5CH中格式化了的文 件控制块所指定的文件。如未指定地址 ,则装入CS:0100开始的存储区
12、中。10)写命令W(Write),有两种功能。把数据写入磁盘的指定扇区。格式为 :-W address drive Sector sector把数据写入指定的文件中。其格式为 : -W address此命令把指定的存储区中的数据写入由 CS:5CH处的文件控制块所指定的文件中 。如未指定地址则数据从cs:0100开始。 要写入文件的字节数应先放入BX和CX中 。11)退出DEBUG命令Q(Quit),其格 式为: -Q 退出DEBUG,返回DOS。本命令并无 存盘功能,如需存盘应先使用W命令。3、debug中标志位的表示标志位 置位 复位 OF OV NV DF DN UP IF EI DI SF NG PL ZF ZR NZ AF AC NA PF PE PO CF CY NC