下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 DEBUG命令介绍

DEBUG命令介绍.doc

DEBUG命令介绍

幸福恋人
2011-11-15 0人阅读 举报 0 0 暂无简介

简介:本文档为《DEBUG命令介绍doc》,可适用于高等教育领域

DEBUG命令介绍  它的功能包括以下几个方面。  直接输入更改跟踪运行汇编语言源程序  观察操作系统的内容  HYPERLINK"http:baikebaiducomimageacadbcdcbc"t"blank"  查看ROMBIOS的内容  观察更改RAM内部的设置值  以扇区或文件的方式读写软盘数据  DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEBUG可以识别两种数据:十六进制数据和ASCⅡ码字符。它的显示格式是各个字节的十六进制值以及值在与之间的字节的相应ASCⅡ码字符。  在DEBUG中输入数据有两种方法:提示方法和非提示方法。在用提示方法时用户可以输入要求输入数据的命令后跟数据所要输入的地址。然后用户就可以看到该地之中已有内容及一个冒号提示符。此时用户可以在提示符下输入一个新的值或者按下回车键或CTRLC回到短横()提示符。在运用非提示方法时用户可以输入要输入数据的内存地址以及要输入的字节。但与使用字处理程序或正文编辑程序时不一样在使用DEBUG时用户不能直接移动光标到一入口点输入或修改数据而要一次输入一个或几个字节。  在使用DEBUG时可以只涉及内存中的数据从而一般都要指定所要处理的内存地址地址的输入格式是:段地址:位移。如果没有输入地址DEBUG将假定为当前内存段从位于地址H的字节开始。前H字节保留给程序段前缀使用这一专用区域用于建立DOS与程序之间的联系。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。  讲到这里大家应该对DEBUG有了初步的了解但是光知道这些可不够接下来我来讲讲DEBUG的命令格式和命令。当输入  DEBUG  调用了DEBUG程序就会出现一个短横提示符用户就可以在这一短横后输入DEBUG程序的命令。有些DEBUG命令会显示一个内存地址并产生一个作为提示符的冒号。在这些提示符后用户可以输入一个新值以改变所显示位置原来的值。如果用户不输入一个新值而是按下回车或CTRLC那么原来的值不会改变。  一般用不着把地址和命令名字分开。例如用转储命令D察看号地址的数据那么这个命令可以用以下任一种形势输入:  D  D  D。  D  如果输入的命令中出现了错误DEBUG将在下一行对着错误的位置标记出来例如:  sd  ^Error编辑本段DEBUG的命令及功能如下:*A地址汇编命令  功能:将指令直接汇编成机器码输入到内存中。  说明:用于小段程序的汇编及修改目标程序所有输入的数字均采用十六进制用户装入内存的汇编语句是连续存放的若没有指定地址并且前面没有使用汇编命令改语句被汇编到CS:区域。  例A:>DEBUG  a  F:MOVAH  F:MOVDX  F:INTH  F:INTH<XP下运行cmddebug时,应该是INTH,H会出遇无效指令错误  F:db'MayIhelpyou$'  F:←离开a状态  g←运行  MayIhelpyou运行结果  Programterminatednormally表示运行正常*C源地址范围目的地址比较命令  功能:比较两内存区域中的内容是否相同若不同则显示其地址和内容。  如:C:F  就是用来比较:F与DS:DS:F之间的内容:其显示格式如下:  内存地址内含值内含值内存地址  例:比较:F内容的差异  C:F  :F:  :EF:显示内容的差异处  :FFF:  ……………………………………  如果要比较的范围在DS内则段地址不必指出:  如:C比较DS:DS:与DS:DS:  C命令的另一种格式如下:C地址L长度地址  如:C:L由:与与DS:开始比较它同C:命令相等显示结果如下:  :ACF:  :F:它们都比较个字节  :CF:  :FF:转储命令  *D地址或D起始地址目的地址转储命令  功能:以内存映象方式显示内存中的信息。  说明:转储用左右两部分显示内存映象内容左边以十六进制右边以ASCII字符显示所有不可打印字符用句号(。)表示。每行显示个字节的内容在第八和第九个字节之间有一个连字符此命令隐含的段地址为DS的值。若未指定起始地址则D命令从显示的最后一个单元的下一个单元开始显示若以前没有使用给D命令则从初使化的段寄存器的内容加上地址偏移量H开始显示。  例:df即为显示DS:f的内容在D命令中如不指出段地址则其默认为DS段。  如指明段地址则从指明的段地址列出指定的范围  如:dfff::f  我们也可以指定长度来列出所需要内存内容  如:dL即为显示由DS:DS:F的内容共H个字节:  *E地址字节串)修改内存命令  功能:从指定的地址开始修改内存值。  格式:E起始地址数据行  ()用给定内容代替指定范围的单元内容  E地址内容表  例:E  DL  F:ABCDHGFE…  ()逐个内存内容  例:E:  F::是操作员键入  此命令是将原号内存内容修改为用D命令可察看。  *F地址范围字节或字节串填写命令  功能:将要填写的字节或字节串填入由地址范围指定的存储器中。  例:f  df  F:abcdabcdabcdabcd  F:ECEBBACEg………  如果数据行超出指定的范围则填不下的数值会被忽略。  例:fABCDdlof  F:ABCDEFGdabcdabcd  由上例可看出超出范围的数据被忽略  另外F和E命令都可填入字符串:  如:F"MSDOS"  dlf  F:DFMSDOSFGabcdabcd*G=起始地址断点……执行命令  功能:执行正在调试的程序当达到断点时停止执行并且显示寄存器标志和下一条要执行的命令。  说明:如果没有指定起始地址那么当前指令地址由CSIP寄存器的内容来决定如果用户指定起始地址就从指定的起始地址开始执行。如果指定断点当指令到达指令地址时停止执行并显示各寄存器标志位的内容和下一条要执行的命令最多允许用户设定个断点。  例:A:>debugtanexe  u:反编译成汇编语言程码  …………    g指定中断点  Programterminatednormally:  另外:我们在DEBUG下可运行一个文件EXE  如:A:>debugtanexe  g  即可开始运行此程序和在DOS下完全一样:  *H数值数值十六进制算术运算命令  功能:分别显示两个十六进制数相加的和以及第一个数减去第二个数的差。  说明:替用户完成简单的十六进制数的运算。  例:h  BBEF*I端口地址  功能:从指定的端口输入并显示(用十六进制)的一个字节。  例:i  F显示端口的内容为F  I命令可由X的K个端口取数据*L地址盘号:逻辑扇区号扇区数  功能:将一个文件或盘的绝对扇区装入存储器。  说明:单个L命令能够装入的最大扇区数是H其中盘号……分别代表ABC……出现读盘错显示错误信息。  ()格式L装入地址驱动器名起始扇区扇区数  这种方式可把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中在此外扇区编号引用逻辑扇区的方式。  例:L将A驱的扇区装至CS:上  df  F:EBCCFELMSDOS……  ()格式:L装入地址  这种方式可把指定文件装入内存装入的文件可在进入DEBUG时指定亦可用N命令建立格式为n文件名:  例DEBUGtanpas  L  例DEBUG  ntanpas  L  须知:L命令只能读取逻辑扇区不能读取硬盘分区表  L命令中所用的磁盘代码A=B=C=……*M地址范围起始地址数据传送命令  功能:把地址范围内的存储器单元的内容移到起始地址的指定地址中  说明:传送期间源区和目标区可以部分重叠传送后源区域数据保持不变。  例:e  df  F:ABCDEBCDABCDABCD  M  dLF  F:AFABCDE……*N盘号:路径文件名扩展名  功能:定义操作文件名。  说明:可同时定义两个操作文件并将形成的文件控制块相应的设置在内存CS:C和CS:C上供以后的L和W命令操作之用。我们在运行程序侦错时在启动DEBUG时在其后加文件程序名以及该程序的参数或运行文件但当我们侦错一段后可能装入其它文件来测试这时我们可利用N命令来设置而无需退出DEBUG。  例:A:>DEBUGtanexe  nyougpas  当程序侦错一段时间后若要把tanexe装入tanpas则ntanlpas*O端口地址数据输出命令  功能:发送字节到指定的输出端口。  例:当我们遇到开机要求输入口令时可用如下方式取消  O  O*P=地址数据进程命令  功能:将一个子程序调用指令循环指令中断指令或一个重复字符串指令停止在下一条指令上。  说明:在执行一条子程序调用指令循环指令中断指令或一个重复字符串指令时发出P命令去执行有关指令并且返回到要执行的下一条指令。P命令和T一样选用来跟踪程序运行过程用的命令我们可以在P命令中指定程序运行的起始地址指令个数如未指定则CS:IP所指定程序的地址开始一次运行一条令。  P与T命令的差别在于P命令把CALLINT当成一条指令来执行简化了跟踪过程P命令只运行RAM内存的命令而T命令则可运行RAM和ROM里的程序。*Q退出命令。*R寄存器寄存器命令  功能:一显示单个寄存器的内容并提供修改功能。二显示所有寄存器内容再加上字母标志位状态以及要执行的下一条指令。三显示个标志位状态并提供修改功能。若不想改变则回车即可。  例:rbx  bx  :  r  AX=BX=CX=SP=FFEEBP=SI=DI=  DS=ES=CDSS=CDIP=NVUPEIPLNZNAOPNC  CD:FDBOF  若想改变标志寄存器用RF回车则DEBUG会将标志内容显示出来若想改变任一标志只要输入该标志的名称即可。  标志名称设置未设置标志名称设置未设置  滋出OV(未溢出)NV(未溢出)零位ZRNZ(不等于零)  方向DN(减少)UP(增加)辅助进位ACNA(无进位)  中断EI(许可)DI(禁止)奇偶标志PE(偶)PO(奇)  符号NG(负)PL(正)进位CYNC(清除进位)  例:Rf  NVUPEIPLNZNAPONC:OVDI←输入值*S地址范围字符串  功能:在指定的地址范围内查找给定的字符串。  说明:用来指定在地址范围内查找一个字符串若找到则显示其地址否则直接显示DEBUG提示符。隐含地址为DS段值。  在此内存可以用(起始地址)(终止地址)或(起始地址)L(长度)的方式来表示而字符串与数据行则可混合使用:如:"BC"。  例:dlof  F:OFABFFFBAFBACB  Slof"AC"  F:←表示找到由开始*T=地址指令条数跟踪命令  功能:逐条跟踪程序的执行每条指令执行后都将显示各寄存器的内容。  说明:通常采用跟踪一条指令但用户也可以用指令条数设定一次跟踪多条指令每执行一条指令之后显示所有寄存器的内容和标志状态。  逐条指令跟踪T=起始地址  从指定地址起执行一条指令后停下来显示所有寄存器内容及标志位的值如来指定地址则从当前CS:IP开始执行。  A:>DEBUG  A  F:MOVDLH  F:MOVAHH  F:INTH  F:INTH  F:  T  AX=BX=CX=DX=SP=FFEEBP=SI=DI=  DS=FES=FSS=FCS=FP=NVUPEIPLNZPOCY  F:BMOVAH  若指定起始地址则T命令会从指定的地址开始跟踪我们还可以指定跟踪一次所运行指令的个数用CtrlS暂停屏幕的显示以便观察。  t=由CS:开始跟踪条指令*U起始地址或者地址范围  功能:将内存中的内容转换为汇编语句。  说明:反汇编的字节数取决与用户的系统显示形式以及在U命令中使用的可选项。  ()从指定地址开始编译反汇编个字节  U地址←从CS:开始其反汇编个字节  如果地址被省略则从一个U命令的最后一条指令的下一条单元开始汇编个字节。  ()对指定的存贮范围进行反汇编  u起始地址终止地址(L长度)  例:U  F:CDINT  F:FFFACALLFABXA  F:FLOCK  F:FEDCALLFARDI  F:FLOCK  说明:如指定了范围则整个范围全都会被反编译*W写盘命令  *W地址盘符:起始扇区扇区数写盘命令  功能:将修改过的数据写到磁盘上。  说明:可以将指定内存地址开始的数据写在磁盘上可以在没有指定参数或指定地址参数的情况下将调试文件写在磁盘上。  在运行W时需设置文件的大小CX或BX寄存器  ()把数据写入磁盘的指定扇区  W起始地址驱动器名起始扇区扇区数  ()把数据写入指定文件中  W起始地址  例A:>DEBUG  A  f:  写入程序段  F:A  RCX  CX:  :A←写入字节数即为程序结尾地址减起始地址  ntancom←设置文件名需后缀为com  w  WringAbytes  q  A:>TAN←即可执行此程序  *"XD"命令:释放EMS内存  例:XD  handledeallocatel←释放了  利用XD释放后可再分配  *"XM"命令把扩充内存上的内存页区映射到主内存区  格式:XMRAM长页码主内存页码句柄  例:XM←把号句柄的第号逻辑页区映射到号真实页区  Logicalpagemappedtophysicalpage  *"XS"命令:显示当前EMS使用情况。  格式XS编辑本段debug命令实际应用   非物理磁道坏软盘的修复  此种损坏从软盘盘面上来看并没有明显的划伤和霉变。一般可以恢复其数据也可使软盘重新在利用。  处理方法如下:  ⅰ进入debug  ⅱ取一张引导区没有损坏的好磁盘,插入软驱  -l  ⅲ插入损坏的磁盘到软驱  -w  -q  注意:好盘与坏盘容量必须相同  物理磁道坏软盘中的数据读取  对于磁道损坏的磁盘一般来说是应该抛弃了当你也不妨试一试已下方法:  磁化处理:用较强的磁铁在靠近坏磁盘的表面处反复移动切不可碰到磁盘介质以免划伤表面然后在试试格式化。  软盘换面:小心的将磁盘打开坚磁片与金属芯片分开方面后再按原来的方法粘在一起即可在重新格式化。  diskfix:对于diskfix想必大家都用的比较多了里面的磁盘修复功能很好用的。能修复大多数磁盘表面错误。  硬盘启动失败处理  在正常机上格式化一张软盘无其它数据  进入debug  -l  -w  -q  用系统盘启动故障机后  在进入debug  -l  -w  -q  软盘不能正确读取解决方法  如果使用软盘时出现如下提示  generalfailureerrorreadingdrivea  可以用以下方法解决:  将一张好盘插入软驱  进入debug  -a  ****:*moval,  ****:****movcx,  ****:****movdx,  ****:****movbx,  ****:****int  ****:****int  回车  -g=  插入坏盘并进入debug  -a  ****:*moval,  ****:****movcx,  ****:****movdx,  ****:****movbx,  ****:****int  ****:****int  回车  -g=   cmos数据的保存恢复  cmosram的’地址口’的口地址为h’数据口’的口地址为h读取时只需将读的cmosram的地址送到h随后就可以从h中得到所需数据。  ()读取cmos数据进入debug  -a  ****:*movbx,  ****:****movcx,  ****:****movax,  ****:movdx,cx  ****:****movcx,  ****:eloope  ****:****out,al  ****:****movcx,  ****:loop  ****:****inal,  ****:****mov【bx】,al  ****:****cmpah,e  ****:****jb  ****:****addah,  ****:incah  ****:****incbx  ****:****movcx,dx  ****:****moval,ah  ****:****loop  ****:****movah,c  ****:****movdx,  ****:****movcx,  ****:****int  ****:****movbx,ax  ****:****movdx,  ****:****movcx,  ****:****movah,  ****:****int  ****:****movah,c  ****:****int  -a  ****:db"cmosdat",  ****:  -rcx  cx  :  -nsavecmoscom  -w  -q  -w  -q  ()恢复cmos数据进入debug  -a  ****:*movcx,  ****:****movah,d  ****:****moval,  ****:****int  ****:****movdx,  ****:****movbx,ax  ****:****movcx,  ****:****movah,f  ****:****int  ****:****movax,  ****:****movbx,dx  ****:****movdx,cx  ****:****movcx,  ****:****loopf  ****:****moval,ah  ****:****out,al  ****:****movcx,  ****:****loop  ****:****moval,【bx】  ****:****out,al  ****:****jb  ****:****addah,  ****:****incah  ****:****incbx  ****:****movcx,dx  ****:****loopa  ****:****movax,  ****:****movds,ax  ****:****movax,  ****:****mov【】,ax  ****:****jmpffff:  -a  ****:db"cmosdat",  ****:  -rcx  cx  :  -nwritecmoscom  -w  -q  dos引导扇区数据的保存与恢复   dos引导程序是被读到内存:c初开始执行的  获得正常的引导程序  进入debug  -l  -na:dosbootcom  -rcx  :  -w  -q  装入引导程序  进入debug  -na:dosbootcom  -l  -rcx  :  -w  -q   硬盘主引导扇区数据的保存与恢复  硬盘工作正常时读取主引导扇区信息  注意:当分区改变时不能用此数据恢复  保存主引导扇区数据进入debug  -a  movax,  movbx,  movcx,  movdx,  int  int  -g=  -e  -eec  -rbx  bx  :  -rcx  cx  :  -na:rbootcom  -w  -q  恢复主引导扇区数据:只需运行a盘的rbootcom   硬盘非分配表备份与恢复  计算机运行正常时分配表备份  进入debug  -l  -na:dbrupdat  -rcx  :  -w  恢复  进入debug  -na:dbrupdat  -l  -w  -q   硬盘保护卡内幕  对于经常在外边上机的人来说计算机维护人员一旦设置硬盘保护卡自己作一些事来特别麻烦想不想屏蔽掉硬盘保护卡用以下方法或许可以借鉴:  进入debug  -a  movah,  movdl,  int  -t  一直按t知道找到cs=f记下此时ds的值如:  -ee:c  f  -q  用debug作硬盘低级格式化  硬盘低级格式化一般用dm但debug也可以低级格式化硬盘  进入debug  -a  movax,  movbx,  movcx,  movdx,  int  int  -e  -q  冷启动与热启动  用debug实现系统冷启动与热启动程序  冷启动:  -a  jmpffff:  int  -na:resetcom  -rcx  :  -w  -q  热启动:  -a  movax,  movds,ax  movax,  movsi,  mov(si),ax  jmpffff:  -na:rsetcom  -rcx  :  -w  -q  dos内部命令加密  如加密dir  用pctools或diskedit找c:下的commandcom文件  编辑该文件  pctools中:f-----f然后找所有找到后按f修改成你所要的值如:foo以后只有输入foo才能列出文件或文件目录。  diskfix有良好的界面操作起来和pctools差不多。  注意:如果不能修改则解开文件的锁定luck  其它命令代码  type  cd  del  copyLoading确定资讯中心InformationINCLUDEPICTURE"http:wwwsuducnimagesheadyuangif"*MERGEFORMATINETHYPERLINK"http:wwwsuducninfoarticlearticleInfophpaId="电信主站HYPERLINK"http:cncsuducninfoarticlearticleInfophpaId="网通镜像 简体>繁體服务热线:(电话列表)HYPERLINK"http:wwwsuducnsystemipayshoppingcarphp"o"点击进入您的购物车"购物车()您好访客请登陆或注册首页域名注册虚拟主机企业邮箱VPS主机服务器网站套餐代理中心会员中心客服中心积分商城主页关于我们联系我们付款方法资讯中心友情链接人才招募服务规范合作伙伴产品免费获赠推广费站长SEO工具主机首页个人主机企业主机ASPNET主机双线主机LINUX主机国外主机论坛主机博客主机CMS主机网店主机空间转入我的主机备案主机首页LINUX主机PHPWind专用主机ShopEX专用主机论坛主机个人主机企业主机不限流量主机双线主机我的主机网站备案注册域名国外域名注册中文域名注册域名介绍及价格免费解析域名动态域名域名交易域名转入域名模板我的域名邮箱首页邮箱介绍邮箱申请我的邮箱VPS首页windowsVPS主机linuxVPS主机美国VPS绿色VPS主机Hyperv主机VPS详解VPS特点和虚拟主机对比我的VPS服务器租用服务器托管机房介绍我的服务器代理首页三分钟建立代理平台代理怎样获得收益建站首页网店套餐cms套餐论坛套餐博客套餐我的套餐积分商城客服中心首页条款与协议中心会员登陆会员注册取回密码价格列表主机首页ShopEx专用主机PHPWind专用主机买主机送com域名免费代备案买主机送在线客服财付通在线支付套餐折窗体顶端资讯中心首页 |行业资讯 |域名资讯 |虚拟主机 |托管租用 |VPS |CDN |网站运营 |技术资讯 |站长资讯 |冲浪宝典 |帮助中心窗体底端MacOS网络设备路由技术网络技术HTMLDHTML源码天堂网络编程JavaPerlCCShell数据库其他DBSybase存储备份硬件技术网站建设通信技术虚拟化技术安全其他安全工具加密和破解数据库安全程序安全网络安全系统安全防火墙VPN网管技术其他InformixOraclePostgreSQLDreamweaver教程windows操作系统XML编程NET编程JSP编程PHP编程ASP编程MssqlMysqlAccessCoreldrawflashweb服务器ftp服务器mail服务器邮件系统IBMAIXHPUXScoSolarisFreeBSDLinuxProxyCSS教程Javascript教程Ajaxdns服务器Photoshop教程当前位置:资讯中心主页>网管技术其他>文章内容DEBUG命令大全 来源:作者:发布时间:::域名注册域名惊喜价格cn域名元注册com域名元虚拟主机主机按月支付,低至元月超大流量,可开子站点VPS主机特惠VPS元月,M独享带宽保证独立操作系统,无限开站点来源:http:hackbasecomDebug启动Debug他是可用于测试和调试MSDOS可执行文件的程式。Debugdrive:pathfilenameparameters参数drive:pathfilename指定要测试的可执行文件的位置和名称。parameters指定要测试的可执行文件所需要的所有命令行信息。说明使用Debug命令但不指定要测试的文件如果使用没有位置和文件名的Debug命令然后键入所有的Debug命令以响应Debug提示符连字符()。Debug命令以下是Debug命令列表:显示Debug命令列表。a汇编记忆码。c比较内存的两个部分。d显示部分内存的内容。e从指定地址开始将数据输入到内存。f使用指定值填充一段内存。g运行在内存中的可执行文件。h执行十六进制运算。i显示来自特定端口的字节值。l将文件或磁盘扇区内容加载到内存。m复制内存块中的内容n为l或w命令指定文件或指定正在测试的文件的参数。o向输出端口发送个字节的值。p执行循环、重复的字符串指令、软件中断或子例程。q停止Debug会话。bitscncomr显示或改动一个或多个寄存器。s在部分内存中搜索一个或多个字节值的模式。t执行一条指令然后显示所有寄存器的内容、所有标志的状态和Debug下一步要执行的指令的解码形式。u反汇编字节并显示相应的原语句。w将被测试文件写入磁盘。xa分配扩展内存。xd释放扩展内存。xm映射扩展内存页。xs显示扩展内存的状态。分隔命令参数所有Debug命令都接受参数除了q命令之外。能用逗号或空格分隔参数不过只有在两个十六进制值之间才需要这些分隔符。因此以下命令等价:dcs:dcs:d,cs:,指定有效地址项Debug命令中的address参数指定内存位置。Address是个包含字母段记录的二位名称或一个四位字段地址加上一个偏移量。能忽略段寄存器或段地址。agltu和w命令的默认段是CS。所有其他命令的默认段是DS。所有数值均为十六进制格式。有效地址如下:CS:BA:在段名和偏移量之间要有冒号。指定有效范围项Debug命令中的range参数指定了内存的范围。能为range选择两种格式:起始地址和结束地址或起始地址和长度范围(由l表示)。中国网管联盟例如下面的两个语法都能指定从CS:开始的字节范围:cs:fcs:lDebug子命令选择Debug命令以获得周详信息。Debug:A(汇编)Debug:C(比较)Debug(转储)Debug:E(键入)Debug:F(填充)Debug:G(转向)Debug:H(十六进制)Debug:I(输入)Debug:L(加载)Debug:M(移动)Debug:N(名称)Debug:O(输出)Debug:P(执行)Debug:Q(退出)Debug:r(寄存器)Debug:s(搜索)Debug:T(跟踪)Debug:U(反汇编)Debug:W(写入)Debug:XA(分配扩展内存)Debug:XD(取消分配扩展内存)Debug:XM(映射扩展内存页)Debug:XS(显示扩展内存状态)***********************Debug子命令******************************Debug:A(汇编)直接将记忆码合并到内存。该命令从汇编语言语句创建可执行的机器码。所有数值都是十六进制格式必须按一到四个字符输入这些数值。在引用的操作代码(操作码)前指定前缀记忆码。aaddress参数address指定键入汇编语言指令的位置。对address使用十六进制值并键入不以“h”字符结尾的每个值。如果不指定地址a将在他上次停止处开始汇编。bitsCNcom有关将数据输入到指定字节中的信息请单击“相关主题”列表中的DebugE(键入)。有关反汇编字节的信息请单击“相关主题”列表中的DebugU(反汇编)。范例a命令支持所有形式的间接注册命令如下例所示:addbx,bpsipopbpdipushsi)还支持所有操作码同义词如下例所示:loopzloopejajnbe对于操作码必须指定wait或fwait前缀如下例所示:fwaitfaddst,st()thislineassemblesanfwaitprefix说明使用记忆码段的替代记忆码为cs:、ds:、es:和ss:。远程返回的记忆码是retf。字符串处理的记忆码必须明确声明字符串大小。例如使用movsw能移动位的字串使用mov***(文字因故被系统屏蔽)***(文字因故被系统屏蔽)能移动位字节串。汇编跳转和调用汇编程式根据字节替换自动将短、近和远的跳转及调用汇编到目标地址。通过使用near或far前缀能替代这样的跳转或调用如下例所示:a::jmpabyteshortjump:jmpnearabytenearjumpBBSbitsCNcom网管论坛:jmpfaraabytefarjump能将near前缀缩写为ne。区分字和字节内存位置当某个操作数能引用某个字内存位置或字节内存位置时必须用前缀wordptr或前缀byteptr指定数据类型。可接受的缩写分别是wo和by。以下范例显示两种格式:decwosinegbyteptr指定操作数Debug使用包括在中括号()的操作数引用内存地址的习惯用法。这是因为另一方面Debug不能区分即时操作数和内存地址的操作数。以下范例显示两种格式:movax,loadAXwithhmovax,loadAXwiththecontentsofmemorylocationh使用伪指令使用a命令提供两个常用的伪指令:db操作码将字节值直接汇编到内存dw操作码将字值直接汇编到内存。以下是两个伪指令的范例:db,,,,"THISISANEXAMPLE"dbTHISISAQUOTATIONMARK:"db"THISISAQUOTATIONMARK:"dw,,,"BACH"Debug:C(比较)比较内存的两个部分。crangeaddress参数range指定要比较的内存第一个区域的起始和结束地址或起始地址和长度。有关有效的range值的信息请单击“相关主题”列表中的“Debug说明”。bitscncomaddress指定要比较的第二个内存区域的起始地址。有关有效address值的信息请单击“相关主题”列表中的“Debug说明”。范例以下命令具有相同效果:c,fcl每个命令都对h到Fh的内存数据块和h到Fh的内存数据块进行比较。Debug响应前面的命令并显示如下信息(假定DS=F):F:DEF:F:F:F:AF:F:FF:F:BDF:F:F:F:F:F:EF:F:CF:F:AAF:AF:BFF:BF:CBEF:CF:DF:DF:EF:EF:FFAF:F注意列表中缺少地址F:和F:。这表明那些地址中的值是相同的。说明如果range和address内存区域相同Debug将不显示所有内容而直接返回到Debug提示符。如果有差异Debug将按如下格式显示:bitsCNComaddressbytebyteaddessDebug(转储)显示一定范围内存地址的内容。drange参数range指定要显示其内容的内存区域的起始和结束地址或起始地址和长度。有关有效的range值的信息请单击“相关主题”列表中的“Debug说明”。如果不指定rangeDebug程式将从以前d命令中所指定的地址范围的末尾开始显示个字节的内容。有关显示寄存器内容的信息请单击“相关主题”列表中的DebugR(寄存器)。范例假定键入以下命令:dcs:fDebug按以下格式显示范围中的内容:BA:FDTOMSAWYER如果在没有参数的情况下键入d命令Debug按以前范例中所描述的内容来编排显示格式。显示的每行以比前一行的地址大个字节(如果是显示列的屏幕则为个字节)的地址开头。对于后面键入的每个不带参数的d命令Debug将紧接在最后显示的命令后即时显示字节内容。如果键入以下命令Debug将从CS:开始显示h个字节的内容:dcs:l如果键入以下命令Debug将显示范围从CS段的h到h中所有字节的内容:DLbitsCNcom网管软件下载dcs:说明当使用d命令时Debug以两个部分显示内存内容:十六进制部分(每个字节的值都用十六进制格式表示)和ASCII码部分(每个字节的值都用ASCII码字符表示)。每个非打印字符在显示的ASCII部分由句号()表示。每个显示行显示字节的内容第字节和第字节之间有一个连字符。每个显示行从字节的边界上开始。Debug:E(键入)将数据输入到内存中指定的地址。能按十六进制或ASCII格式键入数据。以前存储在指定位置的所有数据

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/47

DEBUG命令介绍

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利