DEBUG使用方法.doc_第1页
DEBUG使用方法.doc_第2页
DEBUG使用方法.doc_第3页
DEBUG使用方法.doc_第4页
DEBUG使用方法.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DEBUG使用方法格式:DEBUGdrive:pathfilenametestfile-parameters参数:drive:pathfilename指定待调试可执行文件的所在位置及文件名。testfile-parameters指定待设计可执行文件需要的命令参数。相关命令-A (汇编,Assemble)-C (比较,Compare)-D (卸出,Dump)-E (输入数据,Enter))-F (填充,Fill)-G (执行,Go)-H (十六进行运算,Hex)-I (读输入口,Input)-L (装入,Load)-M (移动,MOVE)-N (命令,NAME)-O (写输出口,OUTPUT)-P (调试循环程序,PROCEED)-Q (退出,QUIT)-R (寄存器,REGISTER)-S (找寻,SEARCH)-T (跟踪,TRACE)-U (反汇编,UNASSEMBLE)-W (写盘,WRITE)-XA (分配扩充内存,ALLOCATE EM)-XD (释放分配的扩充内存,DEALLOCATE EM)-XM (扩展内存页影像,MAP EXM PAGES)-XS (显示扩充内存状态,DISPLAY EM STATUS)二、注意事项不指定调试文件名时DEBUG命令的使用。使用DEBUG命令时,如果未指定调试文件的所在位置及名子,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 110D CS: 100 110D,CS:100,110指定有效地址调试命令中的addres(地址)参数指定内存中的地址。地址分两部分,一部分是段寄存器字母或4位的段地址,另一部分为偏移地址。其中,段寄存器或段地址可以省略。对命令A,G,L,T,U,W,默认段为CS,对所有其余命令,默认段为DS。所有数值都为十六进制。以下为有效地址:CS:010004BA:0100注意,在段名和偏移值之间要加冒号。指定有效地址范围。调试命令中的range(范围)参数指定内存中的地址范围。地址范围有两种格式:开始地址和结束地址;开始地址和范围长度(由L指定)。例如:从CS:100开始,到10F结束,共16字节范围,可使用两种格式说明:CS:100 10FCS:100 1 10DEBUG:A (汇编)一、概述直接汇编8086/80878088汇编语言源程序,汇编结果放内存。本命令将汇编语言语句转换成执行的机器码,语句中所有操作数据均为16进制,由1到4个字符组成。格式:Aaddress参数address指定输入汇编语言语句的地址。地址为16进制数但实际输入时结尾不必加字符“h”,如果不指定地址,命令A将从上一次汇编结束地的地址开始。相关命令有关在指定地址输入数据的具体说明,参阅DEBUG E命令有关反汇编的具体说明,参阅DEBUGU命令。二、注意事项使用助记符地址段名助记符为CS:,DS:,ES:,SS:。远程返回助记符为RETF。字符串处理助记符必须根据其处理的字符串的长度选择使用。例如,移动字串(16bits)使用MOVSW,移动字节串(8bits)使用MOVSB。转移语句和子程序调用的汇编汇编命令将根据语句中地址字节移动自动汇编短,近,远转移或调用,生成目标地址。用户也可以使用前缀NEAR或FAR直接说明这类转移或调用。例如:-a0100:05000100: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 wosineg byte ptr128指定操作数DEBUG按常规认方括号内的操作为内存地址。否则,为立即数。例如:mov ax ,21 ;把数值21装入AXmov ax,21 ;把内存21H单元的内容装入AX使用伪指令A命令使用常用的两个伪指令:DB和DW。DB汇编字节,DW汇编字。汇编后生成的值存入内存(分别以字节和字为单位存放)。例如:db 1,2,3,4, this is an example db this ia a quotation mark:db this is a quoutation mark:dw 1000,2000,3000,BACH三、应用举例A命令支持所有各种形式的寄存器间接寻址指令,例如:add bx, 34pb+2.si-1popbp+dipushsiA命令支持同义操作代码,例如:loopz 100loope 100ja 200jnbe 200使用8087操作代码时,应加前缀WAIT或FWAIT,例如:fwait fadd st,st(3) ;this line assembles;ar fwait prefixDEBUG: C (比较)一、概述比较丙块内存的内容格式C range address参数range指定待比较的第一块内存的起始和结束地址,或其起始地址和长度。有关本参数有效值的说明,参阅DEBUG命令。address指定待比较的第二块内存的起始和结束地址,或其起始地址和长度。有关本参数有效值的说明,参阅DEBUG命令。二、注意事项如果比较的两块内存内容相同,DEBUG不显示任何信息,只返回DEBUG提示符,如果比较的内容有差别,将以下格式显示这些差别。address1 byte1 btye2 address2三、应用举例以下两条命令的执行结果相同:cl100,10f 300c100L10 300两条命令都比较从100h到10Fh和从300h到30Fh的两块内存的内容。DEBUG执行这两条命令时将显示与下面相似的信息(假定DS=197F):197F: 1000 4D E4 194F:0300197F: 0101 67 99 197F:0301197F: 0102 A3 27 194F:0302197F: 0103 35 F3 194F:0303197F: 0104 97 BD 197F:0304197f: 0105 04 35 197F:0305197F: 0107 76 71 197F:0307197F: 0108 E6 11 197F:0308197F: 0109 19 2C 197f:0309197F: 010A 80 0A 197F:030A197F: 010B 36 7F 197F:030B197F: 010C BE 22 197F:030C197F: 010D 83 93 197F:030D197F: 010E 49 77 197F:030E197F: 010F 4F 8A 197F:030F注意上表中缺地址197F:0106和197F:0306,这表示两个地址存放的数值相同。DEBUG:D (卸出)一、概述显示指定范围内存的内容格式Drange参数range指定要显示其内容的内存的起始地址和结束地址,或起始地址和长度。有关范围有效值的说明,参阅DEBUG命令。如未指定范围,将从上一次D命令显示的结束地址开始,显示128字节的内容。相关命令有关寄存器内容的显示,参阅DEBUG R命令。有关反汇编的说明,参阅DEBUG U命令。二、注意事项D命令显示的内存内容分为两部分:十六进制值部分(字节值都显示十六进制的格式)和ASCII字符部分(显示与字节值对应的ASCII字符),无法显示的字符用圆点(.)表示每一行显示行显示16字节的内容,第8和第9字节间用短横线(-)隔开,每一显示行都从16字节边界处开始显示。三、应用举例假设打入如下命令:dcs:100 10fDEGUG将显示类似如下格式的内容:04BA: 0100 54 4F04D000F53 41 57 59-52 00 00 00 00 00 00 TOM.SAWYERM.如随后再打入D命令但不指定范围,DEGUG将紧接着上次显示的最后地址(110)开始显示内存内容,格式同上;每一显示行显示的起始地址都比上一行的大16字节(如显示器屏幕为40列,则大8字节)。如输入如下命令,DEGUG将从cs:100开始,显示20H字节内容:dcs:100 L 20(命令中L可为小写)如输入如下命令,DEGUG将显示CS段内从100H开始到115H为止的内容:dcs:100 115DEGUG: E (输入数据)一、概述输入数据到指定内存。输入的数据可为16进制数,也可为ASCII字符。指定内存在输入新数据后,原先的内容丢失。格式E addresslist参数address指定要输入数据的第一个内存单元。list指定要输入到内存连续单元的数据。可以是一串16进制数或字符。相关命令有关汇编命令的说明,参阅DEGUG A命令。有关内存内容显示的说明,参阅DEGUG D命令。二、注意事项使用address参数如果指定了地址但未指定LIST,DEGUG显示指定地址及其内容,等待用户输入。此时,用户可作如下操作:输入新值。在显示的内存当前值键入新的值。如果键入多于两位数或是无效的16进制值,DEGUG将不显示无效值和多余字符。按空格键跳至下一字节,一直到需要输入新值的字节为止。输入新值的方法同上,如果按空格键移动超过8字节边界,DEGUG将另起一新行并在行首显示当前地址。按短横线回到上一字节。每按一次,回退一字节,而且启动一新的显示行显示显示当前地址及其内容。按回车结束E命令。可在任意字节位置上按回车键结束本命令。使用list参数如果命令中指字了list参数的值勤,E命令将以list中的值顺序取代指定地址的的当前值。如果中途发生错误,原值不变。list的值可以是一串16进制数或一串字符。各个值之间以空格,逗号或制表符(TAB)分隔。字符串则必须加上单引号或双引号。三、应用举例如输入如下命令:ecs:100DEGUG以如下格式显示第一个字节的内容:04BA: 0100 EB._键入41,该单元内容将改为41;如:04BA:0100 EB.41_在一个E命令下可连续输入多个字节值。如上例,在输入新值后接着按空格键,DEGUG将显示下一单元的值,用户接着可输入该单元的新值。依此类推。例如:04BA:0100 EB.41 10.00 BC._接着修改值BC为42,在光标处键入42,DEGUG显示如下:04BA:0400 EB.41 10.00 BC.42_如果要修改输入的新值,比如将10改为6F,可按短横线(-)两次,回到值为10的地址0101处。此时,DEGUG显示如下:04BA:0100 EB.41 10.00 BC.42-04BA:0102 00.-04BA:0101 10._键入6F代替原来的值10:04BA:0101 10.6F_按回车键结束E命令,返回到DEGUG提示符下。输入字符串到指定内存的操作举例如下:eds:100 This is the text example该命令将从ds:100处开始填入引号内字符的ASCII值,共24字节内容。DEGUG:F(填充)一、概述用指定值填充指定区域的内存。指定值可为16进制数据或ASCII字符。填充后,指定内存原内容丢失。格式F RANGE LIST参数range指定待填充内存的起始和结束地址,或其起始地址和长度。有关本参数有效值的说明,参阅DEGUG命令。指定填充数据。指定值可为16进制数据或引号内的ACSII字符。二、注意事项使用range参数如果range中包含的字节数多于list中的数值个数,DEGUG将重复使用list中的数值,直到range中的所有字节填满为止。如果range内的内存单元坏或不存在,DEGUG将显示出错信息并停止F命令。使用list参数如果list中的数值个数多于range包含的字节数,DEGUG将忽略list中多余的值。三、应用举例如输入如下命令:f01ba:100 L100 42 45 52 54 41DEGUG将五个指定值勤(42到41)填入从04BA:1FF的内存单元。DEGUG重复使用指定的五个值,直到所有100H个单元填完为止。DEGUG:G(执行)一、概述运行内存中的程序格式G=addressbreakpoints参数=address指定运行程序的起始地址。如不指定该地址,DEGUG将从由CS:IP指定的当前地址处开始运行程序。breakpoints指定临时断点地址。断点数为1到10个。相关命令有关执行循环,字符吕重复指令,软中断及子程序的说明,参阅DEGUG P命令。有关逐条执行指令的说明,参阅DEGUG T命令。二、注意事项address参数的使用注意本参数前面的等号(=),其作用是指导程序运行的起始地址和程序运行期间的断点地址(breakpoints)区分开来。指定断点程序在到达第一个断点停下,不管该断点在断点中表示什么地方。因为断点设定后,DEGUG即把每一个断点处的原指令换为中断码(0CCh)。程序到达断点时,DEGUG将所有断点处的中断码恢复为原来的指令,显示各寄存器的当前内容和标志状态,当前地址及其存放的指令。DEGUG的这些显示信息如同执行R(寄存器)命令并指定断点时显示的信息一样。如果程序执行时没有遇到断点,一直执行下去,DEGUG不会把断点处的中断码恢复为原来的指令。断点设置的限制断点必须害在存放着8086操作码(opcode)和一个字节的地址上,不能插在中间。如果设置的断点超过10个,DEGUG显示如下信息:bp Error对用户堆载指针的要求用户规模指针必须有效,且应有6个字节供G命令使用。G命令使用IRET指令跳至正在调试的程序。DEGUG置用户堆栈无效或太小,操作系统可能终止。DEGUG还在旨定断点处放置一中断码(0CCh)。重新启动程序程序运行正常结束,MS-DOS显示如下信息:rpogram terminated normally此时,不要马上启动程序运行。必须使用DEGUG的N和L命令重新装入该程序后,才能保证程序正常运行。三、应用举例输入如下命令:gcs:7550MS-DOS运行现正在内存中的程序,到断点CS段的7550地址处停下。DEGUG显示当前各寄存器的内容和标志状态,并暂停G命令的执行。如下命令设置两个断点:gcs:7550,cs:8000如果用户在DEGUG遇到一个断点暂停后在输入G命令,程序将从断点后面的第一条指令开始继续运行,而不是像通常那样从起始地址开始运行。DEGUG:H(16进制算术运算)一、概述对指定的两个数进行16进制算术运算。格式H valuel value2参数valuel参数运算的第一个数,为从0到FFFFh的任意16进制数。value2参数运算的第二个数,为从0到FFFFh的任意16进制数。二、注意事项DEGUG先对两个数作加法运算,然后作减法运算,从第一个数减去第二个数。运算结果显示在同行上首先是和,然后是差。三、应用举例假设输入如下命令:h19f 10aDEGUG执行运算并显示如下结果:02A9 0095DEGUG: I (读输入口)一、概述从指一输入口读入并显示一字节的值。格式I port参数port指定输入口地址。该址址可以是一个16-bit的值。相关命令有关把数据发送至输出口的说明,参阅DEGUG O命令。二、应用举例假设输入口2F8的字节值为42H,那么输入如下命令:i2f8DEGUG将读入该字节并显示如下:42DEGUG: L (装入)一、概述把指定文件或磁盘扇区的内容装入内存。格式LaddressL address drive start number第一个格式把磁盘文件(由N命令指定)读入内存,读入字节数存BX:CX。第二个格式绕过MS-DOS文件系统,直接从指定的磁盘扇区读入数据。参数address指定存放读入数据的内存位置。如果不指定,DEGUG将从CS:IP处开始存放读入数据。(.exe和.hex文件的装入地址参阅注意事项)drive指定要读入某扇区内容的盘符。本参数值为数字。每个值与一盘符对应,如0=A,1=B,2=C等等。start指定要读入其内容的每一个扇区号(十六进制数)。number指定要读入其内容的连续扇数(十六进制数)。相关命令有关在使用L命令读入前先指定文件的说明,参阅DEGUG N命令。有关把调试文件写入磁盘的说明,参阅DEGUG W命令。二、注意事项不带参数L命令的使用如果在输入DEGUG的命令行中指定了文件,那么不带参数使用L命令将把该指定文件的内容从磁盘读入内存。如果命令行中没有指定文件,那么读入的文件是最近运行命令N指定的文件。读入的内容从地址CS:100开始存放。读入的字节数存入寄存器BX和CS。带address参数L命令的使用如果带address参数,L命令将读入的文件或磁盘扇区的内容存入从address开始的内存单元。注意L命令的两种格式,不带参数的L命令用于读入文件,带全部参数的L命令用于读入磁盘扇区。读入指定扇区内容。DEGUG从由参数start指定的扇区开始读入磁盘内容。一直到读完由number指定的扇区数为止。装入EXE文件参数address对读入.EXE文件无效。DEGUG在装入.EXE文件时,将按.EXE文件阔大中指定的地址存放该文件。.EXE文件头在文件装入内存之前就与文件本身分开,所以.EXE文件在盘上的长度和在内存中的长度不同。如果需要检查检验一个完整的.EXE文件,必须更换其扩展名。打开十六进制(HEX)文件所谓十六进制(HEX)文件是使用intel十六进制格式的文件,DEGUG把凡以.HEX为扩展名的文件都看作十六进制文件。不带参数的L命令装.HEX文件的地址是由HEX文件中指定的地址。如果L合命令使用address参数指定装入地址,DEGUG将这两个地址相加,得到确定的装入地址。三、应用举例假设用户输入如下命令该命令命名了个名为的文件。用户随后使用L命令把该文件的内容装入内存。装毕,显示DEGUG的提示符。假设需读入C盘从逻辑扇区15(0Fh)开始的109(6Dh)个扇区的内容,存放在从04BA:0100开始的内存单元内,输入如下命令:L04ba:100 2 of 6dDEBUG: M (移动)一、概述把一块内存的内容复制到一另块。格式M range address参数range指定被拷贝的起始地址和结束地址,或其起始地址和块长。address二、注意事项叠交复制移动所谓叠交复制移动是指执行M命令时,被复制块(源块)的一部分和新复制块(终块)的一部分相互重叠。M命令智能地处理这类复制,不会搞乱新复制块的数据。M先复制要被覆盖的内容,即如果数据从高地址移至低地址,从低地址开始复制,如果数据从低地址至高地址,则从高地址开始复制,这样,保证了新复制块的数据在叠交复制时候保持完整,不遭破坏。三、应用举例假设输入如下命令:msc:100 110 cs:500DEBUG先把地址CS:100的内容复制到CS:510,然后是CS:10F的内容复制到CS:50F。依次进行。一直把CS:100的内容复制到CS:500为止。如需检查移动结果,可使用D命令显示从CS:500开始的内容。DEBUG:N (命令)一、概述为L和W命令执行准备好文件名;为正调试的可执行文件指定所需参数。格式Ndrive:pathfilename为正在调试的可执行文件指定所需参数,使用如下格式:N file-parameters清除由前面的N命令指定的文件名和参数,使用如下格式:N参数drive:pathfilename指定要调试文件的所在位置和文件名。file-parameters指定调试文件运行时所需要的参数。相关命令有关读入文件或磁盘扇区内容的说明,参阅DEBUG L命令。有关把调试文件写盘的说明,参阅DEBUG W命令。二、注意事项N命令的两种用法N命令的第一种用法是指定后面L和W命令所要处理的文件。如果启动DEBUG时未带文件名,在以后使用L命令装入文件前,必须先用N指定文件。文件名将按所要求的格式存入位于CS:5C的文件控制块。N的第二种用法是为调试文件指定所需要的参数。内存区分配如下四处内存区受命令N的影响:内存单元内容-CS:5CFile 1的文件控制块(FCB)CS:6CFile 2的文件控制块(FCB)CS:80 N命令长度(字符数)CS:81 N命令起始字符N命令指定的第一个文件名放在位于CS:5C的文件控制块(FCB)中,如果指了第一个文件,第二个文件名放在位于CS:6C的FCB中。N命令行的字符(不包括N本身)个数放CS:80,字符本身则从CS:81开始排放。这些字符可以是参数和定界符等所有在MS-DOS命令行上合法使用的字符。三、应用举例假设启动DEBUG调试程序PROG.COM,然后为PROG.COM指定两个参数,接着运行该程序,为此,可顺序输入如下命令:debug nparaml param2gG命令运行该程序的情形和在MS-DOS提示符下输入如下命令一样:prog paraml param2下面的命令串中,第一条N命令指定FILE1.EXE为随后L命令要装入的文件。第二条N命令指这FILE1.EXE使用的参数。最后的G命令运行FILE1.EXE,如同在MS-DOS提示符下输入命令FILE1 FILE2.DAT FILE2.DAT一样。nfilel.exe1nfile2.dat file3.datg注意,在第二条N命令后,一不能使用L命令;二如使用W命令,MS-DOS将把FILE1.EXE文件存入FILE2.DAT,为避免这种情况,建议在每次即将使用命令L(装入)或W(保存)文件前,先使用N命令指定文件。DEBUG:O(写输出口)一、概述发送一字节值至输出口格式Oport byte-value参数port指定输出口地址,该地址可以是一个16-bit的值。byte-value指定要发送到输出口的字节值。相关命令有关从输入口读入数据的说明,参阅DEBUG T命令。二、应用举例把字节值勤4Fh发送至地址为2F8h的输出口,输入如下命令:02f8 4fDEBUG:P(proceed)一、概述执行循环、重复字符串指令,软中断或子程序;跟踪任何共它类指令的执行。格式P=addressnumber参数=address指定要执行的第一条指令的地址。如不指定,则寄存器CS:IP所指定的当前地址为默认的执行地址。number指定执行指令的条数。不指定时,默认为1。相关命令有关运行内存中程序的说明,参阅DEBUG G命令。有关执行单条指令的说明,参阅DEBUG T命令。二、注意事项控制的转移P命令把控制转移给调试程序,该程序从指定地址开始循环,重复字符串指令,软中断或子程序,一直到它们运行结束或指字数目的指令已全部执行为止。这时,控制返回到DEBUG。对参数address的限制如果参数address中未能指定地址,DEBUG把调试程序CS寄存器的值作为段地址。如果忽略参数address,程序将从CS:IP所指址址开始执行。注意在参数address前须加等号()。如果指定地址处的指令不是循环,重复字符串指令,软中断或子程序,P的功能和跟踪命令T相同。P命令的显示信息P命令执行后,DEBUG显示该程序各寄存器的内容,所有标志状态以及下一条要执行的指令。警告:不能使用P命令跟踪只读存储器(ROM)内程序的执行。三、应用举例假定调试程序在地址CS:143F处是一条CALL指令。如要运行CALL调用的子程序,然后再返回DEBUG,输入如下命令:p=143f程序返回至CALL指令的下一指令处(1422h),DEBUG显示如下格式的结果:AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2246 ES=2246 SS=2246 CS=2246 IP=1443 NV UP EI PL NZ AC PO NC2246:14427505JNZ 144ADEBUG:Q (退出)一、概述退出DEBUG,但不保存调试程序。输入Q命令后,控制返回到MS-DOS。格式Q参数本命令无参数相关命令有关保存调试程序的说明,参阅DEBUG W命令。二、应用举例需要退出DEBUG时,输入以下命令:Q退出DEBUG后,MS-DOS显示MS-DOS提示符。DEBUG:R (寄存器)一、概述显示或修改中央处理器(CPU)各寄存器的内容。格式Rregister-name显示当前所有寄存器和标志位的内容,使用如下格式内容。R参数register-name指定寄出存器名。相关命令有关内存内容显示的说明,参阅DEBUGD命令。有关汇编内存字节的说明,参阅DEBUG A命令。二、注意事项R命令的使用如指定寄存器名,R命令以十六进制格式显示指定寄存器的16-bit值,后跟一冒号,等待用户输入。如需修改该寄存器的值,键入新值并回车;如下不做修改,直接回车返回到DEBUG提示符下。有效寄存器名AX,BX,CX,DX,SP,BP,SI,DI,DS,ES,SS,CS,IP,PC和T都是有效寄存器名,其中IP和PC均被认为是指令指针。如指定的寄存器名不在上述范围内,DEBUG显示如下信息:br error标志寄存器内容的显示如需显示或修改标志寄存器内容,在R后输入F即可。DEBUG显示两字节的各标志肖前状态。如需修改标志的当前值,参照下表选择输入:标志名置位值清除值溢出(Overflow)OV(溢出)NV(无溢出)方向(Direction)DN(递增)UP(递减)中断(Iinterrupt)EI(允许)DI(禁止)符号(Sing)NG(负值)PL(正值)零(Zero)ZR(零)NZ(非)辅助进位(Auxi-carry)AC(有)NA(无)奇偶(Parity)PE(偶)PO(奇)进位(Carry)CY(有)NC(无)输入标志值的顺序任意。值与值之间无须加空格。按回车皱起这,R命令结束,未输入新值的标识留原值不变。R命令的显示信息如输入的某一标志值多于一个,DEBUG显示如下信息:df error如指定的标志不在上表列出的范围内,DEBUG显示如下信息:bf error上述两种情况中,凡在非规定值之后输入的值均无效。系统默认值启动DEBUG后,段寄存器的值指向自由内存底部,指令指针的位置为0100h,所有标志值为清除值,寄存器SP的值置为FFEEh,其余奇存器的值全部清0。三、应用举例输入命令如下:rDEBUG将显示所有寄存器和标志位的当前内容以及当前内存单元存放的指令。假定当前单元为CS:11A,将显示类似下面的内容:AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000DS=04BA ES=04BA SS=04BA CS=04BA IP=011A NV UP DI NG NZ AC PE NC04BA:011A CD21 INT 21如只需显示各标志状态,输入如下命令:rfDEBUG按如下格式显示各标志状态:NV UP DI NG NZ AC PE NC - _用户接着可修改标志值,新值的顺序任意,各值之间是否加空格也任意,如:nv up di ng nz ac pe nc - pleicy回车后,R命令结束,显示DEBUG提示符。如果需要检查修改结果,输入R或RF命令。DEBUG将显示如下:NV UP EI PL NZ AC PE CY - _按回车键,回到DEBUG提示符下。DEBUG:S(找寻)一、概述在指定内在范围内找寻指定的字节值或字符串格式S range list参数range list指定找寻范围的起始地址和结束地址。有关参数range有效值的说明参阅DEBUG命令。list指定找寻的字节值或字符串。二、注意事项如果list中指它的字节值多于一个,DEBUG将在指定范围内找寻与指定的多个字节完全匹配的字节串,但仅显示这些字节中首字节地址。三、应用举例如需在CS:100到CS:110的范围内找寻值为41的地址,输入如下命令:scs:100 110 41DEBUG按如下格式显示结果:04BA:010404BA:010D-下面的命令在CS:100到CS:1A0的范围内找寻字符串“Ph”:scs:100 1a0 PhDEBUG:T 跟踪)一、概述执行一条指令,显示所有寄存器内容和标志位状态以及执行的指令。格式:T=addressnumber参数address指定DEBUG开始跟踪指令的起始地址。如不指定本参数,跟踪从由CS:IP指向的地址开始。有关address有效值的说明,参阅DEBUG命令。number指定待跟踪的指令数。该数必须是十六进制数。省略时,系统默认为。相关命令有关执行循环,重复字符串指令,软中断或子程序的说明,参阅DEBUGP命令。有关执行现在内存中的程序说明,参阅DEBUGG命令。二、注意事项跟踪只读存储器内的指令T命令采用8086或8088微处理器的硬件跟踪方式。所以,可使用T命令跟踪只读存储器(ROM)内指令的执行。参数address的使用参数address之前必须加等号(),以便与参数number相区别。三、应用举例输入如下命令:tDEBUG将执行由CS:IP指向的那条指令,显示所有寄存器的内容和标志位的状态以及刚才执行的指令。假设CS:IP的当前值为04BA:011A,则DEBUG将显示如下类似信息:AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000DS=04BA ES=04BA SS=04BA CS=04BA IP=011A NV UP DI NG NZ AC PE NC04BA:011A CD21 INT 21DEBUG:U 反汇编)一、概述对字节进行反汇编并显示相应的源语句,包括地址和字节值。反汇编后生成的代码和汇编程序源文件清单类似。格式Urange参数range指定反汇编的起始地址和结束地址,或起始地址和长度。有关参数address有效值的说明,参阅DEBUG命令。相关参数有关字节汇编说明,参阅DEBUGA命令。有关内存内容显示的说明,参阅DEBUG D命令。二、注意事项不带参数的U命令当不指定把汇编的结束地址或长度时,U命令默认长度为20字节。单独使用U命令时,将从前一个U命令结束处后面的地址开始反汇编。三、应用举例从04BA:0100处开始反汇编16(10h)个字节,输入如下命令:u04ba:100L10DEBUG将以下列格式显示反汇编的结果:04BA:0100 206472 AND si+72, AH04BA:0103 69 DB 6904BA:0100 206472 AND si+72, AH04BA:0103 69 DB 6904BA:0104 7665 JBE 016B04BA:0106 207370 AND BP+DI+70,DH04BA:0109 65 DB 6504BA:010A 63 DB 6304BA:010B 69 DB 6904BA:010C 66 DB 6604BA:010D 69 DB 6904BA:010E 63 DB 6304BA:010F 61 DB 61如只需获取从04BA:0100到04BA:0108的反汇编代码,输入如下命令:04BA:0100 206472 ANDSI+72,AH04BA:0103 69 DB 6904BA:01047665JBE016B04BA:0100 207370 AND BP+DI+70,DHDEBUG:W(写盘)一、概述把调试文件或内存指定部分的内容写入磁盘文件或指定扇区。写入磁盘的文件是由DEBUG命令启动时指定。否则是由最近的N命令指定的文件,这两种方法都会在CS:5C处建立包含指定文件名及其参数在内的文件控制块。写文件时,写入的字节数由BX:CX的值决定并使用如下格式:Waddress需要绕开MS-DOS文件系统直接写指定扇区时,使用如下格式:W address drive start number警告:因为直接写指定扇是绕开MS-DOS文件系统进行的,一不小心就可能破坏磁盘的文件结构,后果严重。一定要慎重使用。参数address指定内存中将要写入磁盘文件的内容的起始地址。如不指定,以CS:100处为起始地址。有关address有效值的说明,参阅DEBUG命令。drive指定写入盘的盘符。本参数值为数值0(A盘),1(B盘),2(C盘),等等。start指定写入的第一个扇区号(十六进制数)。number指定写入扇区的个数。相关命令有关执行W命令时文件名指定的说明,参阅DEBUGN命令。有关读入磁盘文件内容或扇区内容的说明,参阅DEBUG L命令。二、注意事项无参数执行W命令前BX:CX值的设置如果前面执行过G,T,P或R命令,那么,无参数执行W命令前应先恢复寄存器BX:CX原来的值。把修复过的文件写入磁盘。如果文件已经修改过,但文件名,长度或起始地址未改变,DEBUG仍能正确地把文件写回其原在磁盘中的位置。W命令使用的限制对.EXE和.HEX文件不能使用W使命。三、应用举例假设要把从CS:100开始的内在内容写入B盘从37H号逻辑扇区开始的26H个扇区中,输入如下命令:wcs:100 1 37 26写盘操作完成,DEBUG将显示自己的提示符。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论