灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3914回复:0

[系统教程]DOS命令大全:Debug:p (proceed)命令详解

楼主#
更多 发布于:2012-08-31 19:02


执行循环、重复的字符串指令、软件中断或子例程。或始终跟踪其他的任何指令。如果在不含参数的情况下使用,则 p 将列出寄存器及其当前值。
MS-DOS命令语法
p [= address] [number]
MS-DOS命令参数
address指定第一个要执行指令的位置。如果不指定地址,则默认地址是在 CS:IP 寄存器中指定的当前地址。number指定将控制权交还给 Debug.exe 之前要运行的指令数。默认值为 1。?显示 debug 子命令列表。MS-DOS命令注释

指定有效的 address 项Address 是一个包含字母段记录的二位名称或一个四位字段地址加上一个偏移量。可以忽略段寄存器或段地址。CS 是下列“调试”子命令的默认段:a、g、l、t、u 和 w。所有其它命令的默认段是 DS。所有数值均为十六进制格式。段名和偏移量之间必须包含冒号。有效地址如下:
CS:0100
04BA:0100

使用 address 参数如果 address 参数未指定段,则 Debug.exe 将使用所测试程序的 CS 寄存器。如果省略了 address,将从由该程序的 CS:IP 寄存器指定的地址开始执行该程序。必须在 address 之前使用等号 (=),以便区分它与 number 参数。如果指定地址处的指令不是某个循环、重复字符串指令、软件中断或子例程,则 p 子命令会与 t (trace) 子命令有相同的工作方式。

将控制权传递给正被测试的程序当 p 子命令将控制权从Debug.exe 传递给正被测测试的程序时,该程序会保持无中断运行状态,直到指定地址处的循环、重复字符串指令、软件中断或子例程结束,或直到已执行完指定的机器指令数。此后,控制权会交还给 Debug.exe。

查看消息在 p 运行后,Debug.exe 将显示该程序的寄存器内容、寄存器标志的状态以及要执行的下一条指令的解码形式。
警告

不能使用 p 子命令来跟踪只读存储器 (ROM)。
有关使用 g (go) 子命令来运行当前位于存储器中的程序的信息,请参阅“相关主题”。
获取使用 t 子命令来执行一个指令的信息,请参阅“相关主题”
MS-DOS命令范例
该范例中,要测试的程序在地址 CS:143F 处包含一个 call 命令指令。要运行由 call 命令调用的子例程,然后将控制权返还给 Debug.exe,请键入:
p=143f
Debug.exe 按以下格式显示结果:
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 NC
2246:1442 7505 JNZ 144A


喜欢0 评分0
游客

返回顶部