《MASMDEBUG主要命令.ppt》由会员分享,可在线阅读,更多相关《MASMDEBUG主要命令.ppt(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的原先的内容。,第二种格式则是采用逐个单元相继修改的方法。命令格式为;,-E address例如,-e cs:10
4、0则可能显示为: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的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。,3)检查和修改寄存器内容
5、的命令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 register name例如,键入-r ax系统将响应如下:AX F1F4:即AX寄
6、存器的当前内容为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 address1address2address3.其中,地址1指定了运行的起始地址如不指定则从当前的CS:IP开始运行。后面的地址均为
7、断点地址,当指令执行到断点时,就停止招待并显示当前所有寄存器及标志位的内容,和下一条将要招待的指令。,5)跟踪命令T(Trace),有两种格式;,逐条指令跟踪-T=addess从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的cs:IP开始执行。多条指个跟踪-T=addressvalue从指定地址起执行n条指令后停下来,n由value指定。,6)汇编命令A(Assemble),其格式为:,-Aaddress 该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG把健入的数字均看成十六进制数,所以如要
8、键八十进制数,则其后应加以说明,如100D。,7)反汇编命令U(Unassemble),有两种格式。,从指定地址开始,反汇编32个字节,其格式为:-Uaddress 例如:-U10018E4:0100 C70604023801 MOV WORD PTR0204,013818E4:0106 C70606020002 MOV WORD PTR 0206,020018E4:0F0C C70608020202 MOV WORD PTR 0208,020218E4:0112 BB0402 MOV BX,020418E4:0115 E80200 CALL 011A18E4:0118 CD20 INT 20
9、18E4:011A 50 PUSH AX18E4:011B 51 PUSH CX18E4:011C 56 PUSH SI18E4:011D 57 PUSH DI18E4:011E 8B37 MOV SI,BX,如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。,对指定范围内的存储单元进行反汇编,格式为:-U range 例如:-u100 10C18E4:0100 C70604023801 MOV WORD PTR 0204,013818E4:0106 C70606020002 MOV WORD PTR 0206,020018E4:010C C70608020202
10、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 filespecs命令把两个文件标识符格式化在cs:5CH和CS:6CH的两个文件控制块中,以便在其后用L或w命令把文件装入或存盘。filespecs的格式可以是:d:Path f
11、ilename.ext例如,-N myprog-L可把文件myprog装入存储器。,9)装入命令L(Load),有两种功能。,把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。其格式为:-Laddress drive sector sector装入指定文件,其格式为:-L address此命令装入已在CS:5CH中格式化了的文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。,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,