⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e路阳光 - 编程专区 - debug命令详解 天天好心情!.htm

📁 几个有用的网叶
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                          p 命令跟踪只读内存 (ROM)。<BR>范例<BR>假定正在测试的程序在地址 CS:143F 处包含一个 
                          call 指令。要运行 call 目标位置的子程序然后将控制返回到 
                          Debug,请键入以下命令:<BR>p=143f<BR>Debug 
                          按以下格式显示结果:<BR>AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE 
                          BP=0000 SI=0000 DI=0000<BR>DS=2246 ES=2246 SS=2246 
                          CS=2246 IP=1443 NV UP EI PL NZ AC PO NC<BR>2246:1442 
                          7505 JNZ 144A<BR>Debug:Q(退出)<BR><BR>停止 Debug 
                          会话,不保存当前测试的文件。<BR>当您键入 q 以后,控制返回到 Windows 2000 
                          的命令提示符。<BR><BR>q<BR><BR>参数<BR>该命令不带参数。<BR>有关保存文件的信息,请单击“相关主题”列表中的 
                          Debug W(写入)。<BR>Debug:R(寄存器)<BR><BR>显示或改变一个或多个 CPU 
                          寄存器的内容。<BR><BR>r 
                          [register-name]<BR><BR>参数<BR>无<BR>如果在没有参数的情况下使用,则 r 
                          命令显示所有寄存器的内容以及寄存器存储区域中的标志。<BR>register-name<BR>指定要显示其内容的寄存器名。<BR>有关显示内存部分内容的信息,请单击“相关主题”列表中的 
                          Debug D(转储)。<BR>有关反汇编字节的信息,请单击“相关主题”列表中的 Debug 
                          U(反汇编)。<BR><BR>说明<BR>使用 r 命令<BR>如果指定了寄存器名称,Windows 
                          2000 将显示以十六进制标记表示的寄存器的 16 
                          位值,并将冒号显示为提示符。如果要更改包含在寄存器中的值,除非键入新值并按 ENTER 键;否则,请按 
                          ENTER 键返回 Debug 提示符。<BR>有效寄存器名<BR>以下是 register-name 
                          的有效值:ax、bx、cx、dx、sp、bp、si、di、ds、es、ss、cs、ip、pc 及 f。ip 
                          和 pc 都引用指令指针。<BR>如果指定寄存器名称,而不是从前面的列表中指定,Windows 2000 
                          将显示以下消息:<BR>br error<BR>使用 f 字符而不是寄存器名<BR>如果键入 f 
                          字符代替寄存器名,Debug 将每个标记的当前设置显示为两字母代码,然后显示 Debug 
                          提示符。要更改标志的设置,请从下表中键入适当的两字母代码:<BR>标志名<BR>设置<BR>清除<BR>溢出<BR>ov<BR>nv<BR>方向<BR>dn(减)<BR>up(增)<BR>中断<BR>ei(启用)<BR>di(禁用)<BR>正负<BR>ng(负)<BR>pl(正)<BR>零<BR>zr<BR>nz<BR>辅助进位<BR>ac<BR>na<BR>奇偶校验<BR>pe(偶校验)<BR>po(奇校验)<BR>进位<BR>cy<BR>nc<BR><BR>可以按任何顺序键入新的标志值。不需要在这些值之间留出空格。要停止 
                          r 命令,请按 ENTER 键。任何没有指定新值的标志保持不变。<BR>用 r 
                          命令显示的邮件<BR>如果为标记指定了多个值,Debug 将显示以下消息:<BR>df 
                          error<BR>如果指定没有在前面的表中列出的标志代码,Debug 将显示以下消息:<BR>bf 
                          error<BR>在这两种情况下,Debug 将忽略所有在无效项目之后指定的设置。<BR>Debug 
                          的默认设置<BR>在启动 Debug 时,会将段寄存器设置到空闲内存的低端,指令指针设置为 
                          0100h,清除所有标志,并且将其余寄存器设置为零,除了被设置为 FFEEh 的 sp 
                          之外。<BR>Debug:R<BR><BR>范例<BR>要查看所有寄存器的内容、所有标记的状态和当前位置的指令解码表,请键入以下命令:<BR>r<BR>如果当前位置是 
                          CS:11A,显示外观将类似于以下内容:<BR>AX=0E00 BX=00FF CX=0007 
                          DX=01FF SP=039D BP=0000 SI=005C DI=0000<BR>DS=04BA 
                          ES=04BA SS=04BA CS=O4BA IP=011A NV UP DI NG NZ AC PE 
                          NC<BR>04BA:011A CD21 INT 
                          21<BR>要只查看标志的状态,请键入以下命令:<BR>rf<BR>Debug 
                          按以下格式显示信息:<BR>NV UP DI NG NZ AC PE NC - 
                          _<BR>现在,您可以按任意顺序键入一个或多个有效的标志值,其中可以有或没有空格,如下所示:<BR>nv 
                          up di ng nz ac pe nc - pleicy<BR>Debug 结束 r 命令并显示 
                          Debug 提示符。要查看更改,请键入 r 或 rf 命令。Debug 将显示以下内容:<BR>NV UP 
                          EI PL NZ AC PE CY - _<BR>按 ENTER 返回到 Debug 
                          提示符。<BR>Debug:S(搜索)<BR><BR>在某个地址范围搜索一个或多个字节值的模式。<BR><BR>s 
                          range list<BR><BR>参数<BR>range<BR>指定要搜索范围的开始和结束地址。有关 
                          range 参数有效值的信息,请单击“相关主题”列表中的 
                          Debug。<BR>list<BR>指定一个或多个字节值的模式,或要搜索的字符串。用空格或逗号分隔每个字节值和下一个字节值。将字符串值包括在引号中。<BR><BR>说明<BR>如果 
                          list 参数包含多个字节值,Debug 将只显示出现字节值的第一个地址。如果 list 
                          只包含一个字节值,Debug 
                          将显示指定范围内出现该值的所有地址。<BR><BR>范例<BR>假定需要查找包含值 41 并且范围从 
                          CS:100 到 CS:110 的所有地址。为此,请键入以下命令:<BR>scs:100 110 
                          41<BR>Debug 
                          按以下格式显示结果:<BR>04BA:0104<BR>04BA:010D<BR>-<BR>以下命令在 
                          CS:100 到 CS:1A0 的范围内搜索字符串“Ph”。<BR>scs:100 1a0 
                          "Ph"<BR>Debug:U(反汇编)<BR><BR>反汇编字节并显示相应的原语句,其中包括地址和字节值。反汇编代码看起来象已汇编文件的列表。<BR><BR>u 
                          [range]<BR><BR>参数<BR>无<BR>如果在没有参数的情况下使用,则 u 命令分解 20h 
                          字节(默认值),从前面 u 
                          命令所显示地址后的第一个地址开始。<BR>range<BR>指定要反汇编代码的起始地址和结束地址,或起始地址和长度。有关 
                          range 参数有效值的信息,请单击“相关主题”列表中的 
                          Debug。<BR>有关集成记忆码的信息,请单击“相关主题”列表中的 Debug 
                          A(汇编)。<BR>有关显示内存部分内容的信息,请单击“相关主题”列表中的 Debug 
                          D(转储)。<BR>范例<BR><BR>要反汇编 16 (10h) 字节,从地址 04BA:0100 
                          开始,请键入以下命令:<BR>u04ba:100l10<BR>Debug 
                          按以下格式显示结果:<BR>04BA:0100 206472 AND 
                          [SI+72],AH<BR>04BA:0103 69 DB 69<BR>04BA:0104 7665 JBE 
                          016B<BR>04BA:0106 207370 AND 
                          [BP+DI+70],DH<BR>04BA:0109 65 DB 65<BR>04BA:010A 63 DB 
                          63<BR>04BA:010B 69 DB 69<BR>04BA:010C 66 DB 
                          66<BR>04BA:010D 69 DB 69<BR>04BA:010E 63 DB 
                          63<BR>04BA:010F 61 DB 61<BR>如果只显示从 04BA:0100 到 
                          04BA:0108 特定地址的信息,请键入以下命令:<BR>u04ba:0100 0108<BR>Debug 
                          显示以下内容:<BR>04BA:0100 206472 AND 
                          [SI+72],AH<BR>04BA:0103 69 DB 69<BR>04BA:0104 7665 JBE 
                          016B<BR>04BA:0106 207370 AND 
                          [BP+DI+70],DH<BR>Debug:W(写入)<BR><BR>将文件或特定分区写入磁盘。<BR>要将在 
                          BX:CX 寄存器中指定字节数的内容写入磁盘文件,请使用以下语法:<BR><BR>w 
                          [address]<BR><BR>要略过 Windows 2000 
                          文件系统并直接写入特定的扇区,请使用以下语法:<BR>w address drive start 
                          number<BR><BR>参数<BR>address<BR>指定要写到磁盘文件的文件或部分文件的起始内存地址。如果不指定 
                          address,Debug 程序将从 CS:100 开始。关于 address 
                          参数有效值的信息,请在“相关主题”列表中单击 
                          Debug。<BR>drive<BR>指定包含目标盘的驱动器。该值是数值型:0 = A, 1 = B, 2 
                          = 
                          C,等等。<BR>start<BR>指定要写入第一个扇区的十六进制数。<BR>number<BR>指定要写入的扇区数。<BR>有关指定用于 
                          w 命令的文件的信息,请单击“相关主题”列表中的 Debug 
                          N(名称)。<BR>有关将文件或文件扇区内容加载到内存中的信息,请单击“相关主题”列表中的 Debug 
                          L(加载)。<BR>说明<BR>必须在启动 Debug 时或者在最近的 Debug 
                          n(名称)命令中指定磁盘文件的名字。这两种方法都可以将地址 CS:5C 
                          处文件控制块的文件名正确地编排格式。<BR><BR>在使用不带参数的 w 命令之前重新设置 
                          BX:CX<BR>如果使用了 Debug g(转向)、t(跟踪)、p(执行)或 
                          r(寄存器)命令,必须在使用无参数的 w 命令之前,将 BX:CX 
                          寄存器复位。<BR>将修改后的文件写入磁盘<BR>如果修改文件但不更改文件名、长度或起始地址,Debug 
                          仍然可以正确地将文件写入源磁盘位置。<BR>w 命令的限制<BR>不能用该命令写入 .exe 或 .hex 
                          文件。<BR>警告<BR>因为略过 Windows 2000 
                          文件句柄,所以写入特定的分区非常危险。如果键入错误的值,则磁盘文件结构很容易被损坏。<BR>范例<BR>假定要将起始地址为 
                          CS:100 的内存内容写入到驱动器 B 的磁盘中。需要将数据从磁盘的逻辑扇区号 37h 开始并持续 2Bh 
                          个扇区。为此,键入以下命令:<BR>wcs:100 1 37 2b<BR>当写操作完成时,Debug 
                          再次显示 Debug 
                          提示符。<BR>Debug:XA(分配扩展内存)<BR>分配扩展内存的指定页面数。<BR>要使用扩展内存,必须安装符合 
                          4.0 版的 Lotus/Intel/Microsoft 扩展内存规范 (LIM EMS) 
                          的扩展内存设备驱动程序。<BR><BR>xa 
                          [count]<BR><BR>参数<BR>count<BR>指定要分配的扩展内存的 16KB 
                          页数。<BR>有关使用扩展内存的其他 Debug 命令的信息,请单击“相关主题”列表中的 
                          XD(释放扩展内存)、XM(映射扩展内存页)或 
                          XS(显示扩展内存状态)。<BR>说明<BR>如果指定的页面数可用,则 Debug 
                          将显示消息,此消息表明所创建的句柄的十六进制数;否则,Debug 
                          将显示错误消息。<BR><BR>Debug:XA<BR>范例<BR>要分配扩展内存的 8 
                          个页面,请键入以下命令:<BR>xa8<BR>如果命令成功,Debug 
                          将显示类似的以下消息:<BR>Handle 
                          created=0003<BR>Debug:XD(释放扩展内存)<BR><BR>释放指向扩展内存的句柄。<BR>要使用扩展内存,必须安装符合 
                          4.0 版的 Lotus/Intel/Microsoft 扩展内存规范 (LIM EMS) 
                          的扩展内存设备驱动程序。<BR><BR>xd 
                          [handle]<BR><BR>参数<BR>handle<BR>指定要释放的句柄。<BR>有关使用扩展内存的其他 
                          Debug 命令的信息,请单击“相关主题”列表中 XA(分配扩展内存)、XM(映射扩展内存页) 或 
                          XS(显示扩展内存状态)。<BR>范例<BR>要释放句柄 0003,请键入以下命令:<BR>xd 
                          0003<BR>如果命令成功,Debug 将显示下列消息:<BR>Hdle 0003 
                          deallocated<BR>Debug:XM(映射扩展内存页)<BR><BR>将属于指定句柄的扩展内存逻辑页映射到扩展内存的物理页。<BR>要使用扩展内存,必须安装符合 
                          4.0 版的 Lotus/Intel/Microsoft 扩展内存规范 (LIM EMS) 
                          的扩展内存设备驱动程序。<BR><BR>xm [lpage] [ppage] 
                          [handle]<BR><BR>参数<BR>lpage<BR>指定要映射到物理页 ppage 
                          的扩展内存的逻辑页面号。<BR>ppage<BR>指定将 lpage 
                          映射到的物理页面号。<BR>handle<BR>指定句柄。<BR>有关使用扩展内存的其他 Debug 
                          命令的信息,请单击“相关主题”列表中的 XA(分配扩展内存)、XD(释放扩展内存)或 
                          XS(显示扩展内存)。<BR><BR>范例<BR>要将句柄 0003 的逻辑页 5 映射到物理页 
                          2,请键入以下命令:<BR>xm 5 2 0003<BR>如果命令成功,Debug 
                          将显示下列消息:<BR>Logical page 05 mapped to physical page 
                          02<BR>Debug:XS(显示扩展内存状态)<BR><BR>显示有关扩展内存状态的信息。<BR>要使用扩展内存,必须安装符合 
                          4.0 版的 Lotus/Intel/Microsoft 扩展内存规范 (LIM EMS) 
                          的扩展内存设备驱动程序。<BR><BR>xs<BR><BR>参数<BR>该命令不带参数。<BR>有关使用扩展内存的其他 
                          Debug 命令的信息,请单击“相关主题”列表中的 XA(分配扩展内存)、XD(释放扩展内存)或 
                          XM(映射扩展内存页)。<BR><BR>说明<BR>Debug 显示的信息有如下格式:<BR>Handle 
                          xx has xx pages allocated<BR>Physical page xx = Frame 
                          segment xx<BR>xx of a total xx EMS pages have been 
                          allocated<BR>xx of a total xx EMS handles have been 
                          allocated<BR><BR>范例<BR>要显示扩展内存信息,请键入以下命令:<BR>xs<BR>Debug 
                          显示与以下类似的信息:<BR>Handle 0000 has 0000 pages 
                          allocated<BR>Handle 0001 has 0002 pages 
                          allocated<BR>Physical page 00 = Frame segment 
                          C000<BR>Physical page 01 = Frame segment 
                          C400<BR>Physical page 02 = Frame segment 
                          C800<BR>Physical page 03 = Frame segment CC00<BR>2 of 
                          a total 80 EMS pages have been allocated<BR>2 of a 
                          total FF EMS handles have been allocated<BR></UL></TD></TR>
                    <TR>
                      <TD vAlign=bottom><IMG 
                        src="E路阳光 - 编程专区 - DEBUG命令详解 天天好心情!.files/sigline.gif"><BR>和你的年纪、差了一个音阶。 
                        <BR>对是否能吹响它、我感到非常的不安...。 <BR>在吹着熟悉的海风的夜晚、你所弹的风琴的音色反映着月光。 
                        <BR>就这样、分离的指尖、碎掉的四叶草、打开了弧光街道的

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -