[网络整理]DEBUG命令使用解析五

Debug:Q(退出)

  停止 Debug 会话,不保存当前测试的文件。
  当您键入 q 以后,控制返回到 Windows 2000 的命令提示符。
  q
  参数
  该命令不带参数。
  有关保存文件的信息,请单击“相关主题”列表中的 Debug W(写入)。
  ++++

  Debug:R(寄存器)

  显示或改变一个或多个 CPU 寄存器的内容。
  r [register-name]
  参数
  无

  如果在没有参数的情况下使用,则 r 命令显示所有寄存器的内容以及寄存器存储区域中的标志。
  register-name
  指定要显示其内容的寄存器名。
  有关显示内存部分内容的信息,请单击“相关主题”列表中的 Debug D(转储)。
  有关反汇编字节的信息,请单击“相关主题”列表中的 Debug U(反汇编)。
  ++

  范例
  要查看所有寄存器的内容、所有标记的状态和当前位置的指令解码表,请键入以下命令:
  r
  如果当前位置是 CS:11A,显示外观将类似于以下内容:
  AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000
  DS=04BA ES=04BA SS=04BA CS=O4BA IP=011A NV UP DI NG NZ AC PE NC
  04BA:011A CD21 INT 21
  要只查看标志的状态,请键入以下命令:
  rf
  Debug 按以下格式显示信息:
  NV UP DI NG NZ AC PE NC - _
  现在,您可以按任意顺序键入一个或多个有效的标志值,其中可以有或没有空格,如下所示:
  nv up di ng nz ac pe nc - pleicy
  Debug 结束 r 命令并显示 Debug 提示符。要查看更改,请键入 r 或 rf 命令。Debug 将显示以下内容:
  NV UP EI PL NZ AC PE CY - _
  按 ENTER 返回到 Debug 提示符。
  ++

  说明
  使用 r 命令
  如果指定了寄存器名称,Windows 2000 将显示以十六进制标记表示的寄存器的 16 位值,并将冒号显示为提示符。如果要更改包含在寄存器中的值,除非键入新值并按 ENTER 键;否则,请按 ENTER 键返回 Debug 提示符。

  有效寄存器名
  以下是 register-name 的有效值:ax、bx、cx、dx、sp、bp、si、di、ds、es、ss、cs、ip、pc 及 f。ip 和 pc 都引用指令指针。
  如果指定寄存器名称,而不是从前面的列表中指定,Windows 2000 将显示以下消息:
  br error
  使用 f 字符而不是寄存器名
  如果键入 f 字符代替寄存器名,Debug 将每个标记的当前设置显示为两字母代码,然后显示 Debug 提示符。要更改标志的设置,请从下表中键入适当的两字母代码:
  标志名 设置 清除
  溢出 ov nv
  方向 dn(减) up(增)
  中断 ei(启用) di(禁用)
  正负 ng(负) pl(正)
  零 zr nz
  辅助进位 ac na
  奇偶校验 pe(偶校验) po(奇校验)
  进位 cy nc
  可以按任何顺序键入新的标志值。不需要在这些值之间留出空格。要停止 r 命令,请按 ENTER 键。任何没有指定新值的标志保持不变。
  用 r 命令显示的邮件
  如果为标记指定了多个值,Debug 将显示以下消息:
  df error
  如果指定没有在前面的表中列出的标志代码,Debug 将显示以下消息:
  bf error
  在这两种情况下,Debug 将忽略所有在无效项目之后指定的设置。
  Debug 的默认设置
  在启动 Debug 时,会将段寄存器设置到空闲内存的低端,指令指针设置为 0100h,清除所有标志,并且将其余寄存器设置为零,除了被设置为 FFEEh 的 sp 之外。
  ++++

  Debug:S(搜索)

  在某个地址范围搜索一个或多个字节值的模式。
  s range list
  参数
  range
  指定要搜索范围的开始和结束地址。有关 range 参数有效值的信息,请单击“相关主题”列表中的 Debug。
  list
  指定一个或多个字节值的模式,或要搜索的字符串。用空格或逗号分隔每个字节值和下一个字节值。将字符串值包括在引号中。
  ++

  范例
  假定需要查找包含值 41 并且范围从 CS:100 到 CS:110 的所有地址。为此,请键入以下命令:
  scs:100 110 41
  Debug 按以下格式显示结果:
  04BA:0104
  04BA:010D
  -
  以下命令在 CS:100 到 CS:1A0 的范围内搜索字符串“Ph”。
  scs:100 1a0 "Ph"
  ++

  说明
  如果 list 参数包含多个字节值,Debug 将只显示出现字节值的第一个地址。如果 list 只包含一个字节值,Debug 将显示指定范围内出现该值的所有地址。
  ++++

  Debug:T(跟踪)

  执行一条指令,并显示所有注册的内容、所有标志的状态和所执行指令的解码形式。
  t [=address] [number]
  参数
  =address
  指定 Debug 启动跟踪指令的地址。如果省略 address 参数,跟踪将从程序的 CS:IP 寄存器所指定的地址开始。有关 address 参数有效值的信息,请单击“相关主题”列表中的 Debug。
  number
  指定要跟踪的指令数。该值必须是十六进制数。默认值为 1。
  有关执行循环、重复的字符串指令、软件中断或子例程的信息,请单击“相关主题”列表中的 Debug P(执行)。
  有关执行当前内存中程序的信息,请单击“相关主题”列表中的 Debug G(转向)。
  ++

  范例
  要执行一个指令(CS:IP 指向的指令),然后显示寄存器的内容、标志的状态以及指令的解码形式,请键入以下命令:
  t
  如果程序中的指令位于 04BA:011A,Debug 可能显示下列信息:
  AX=0E00 BX=00FF CX=0007 DX=01FF SP=039D BP=0000 SI=005C DI=0000
  DS=04BA ES=04BA SS=04BA CS=O4BA IP=011A NV UP DI NG NZ AC PE NC
  04BA:011A CD21 INT 21
  ++

  说明
  跟踪只读内存中的指令
  t 命令使用 8086 或 8088 微处理器的硬件跟踪模式。因此,也可以跟踪存储在只读内存 (ROM) 中的指令。
  使用地址参数
  必须在 address 参数之前使用等号 (=) 以便将它与 number 参数区分。
  ++++
原文地址:https://www.cnblogs.com/madengwei/p/1413737.html