DEBUG命令详解1.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DEBUG命令详解1.doc

DEBUG命令详解 DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。c 比较内存的两个部分。d 显示部分内存的内容。e 从指定地址开始,将数据输入到内存。f 使用指定值填充一段内存。g 运行在内存中的可执行文件。h 执行十六进制运算。i 显示来自特定端口的 1 字节值。l 将文件或磁盘扇区内容加载到内存。m 复制内存块中的内容/n 为 l 或 w 命令指定文件,或者指定正在测试的文件的参数。o 向输出端口发送 1 个字节的值。p 执行循环、重复的字符串指令、软件中断或子例程。q 停止 Debug 会话。r 显示或改变一个或多个寄存器。s 在部分内存中搜索一个或多个字节值的模式。t 执行一条指令,然后显示所有寄存器的内容、所有标志的状态和 Debug 下一步要执行的指令的解码形式。u 反汇编字节并显示相应的原语句。w 将被测试文件写入磁盘。xa 分配扩展内存。xd 释放扩展内存。xm 映射扩展内存页。xs 显示扩展内存的状态。分隔命令参数所有 Debug 命令都接受参数,除了 q 命令之外。可以用逗号或空格分隔参数,但是只有在两个十六进制值之间才需要这些分隔符。因此,以下命令等价:dcs:100 110 d cs:100 110 d,cs:100,110 指定有效地址项Debug 命令中的 address 参数指定内存位置。Address 是一个包含字母段记录的二位名称或一个四位字段地址加上一个偏移量。可以忽略段寄存器或段地址。a,g,l,t,u 和 w 命令的默认段是 CS。所有其他命令的默认段是 DS。所有数值均为十六进制格式。有效地址如下:CS:0100 04BA:0100 在段名和偏移量之间要有冒号。指定有效范围项Debug 命令中的 range 参数指定了内存的范围。可以为 range 选择两种格式:起始地址和结束地址,或者起始地址和长度范围(由 l 表示)。例如,下面的两个语法都可以指定从 CS:100 开始的 16 字节范围:cs:100 10f cs:100 l 10 Debug 子命令Debug:A(汇编)直接将 8086/8087/8088 记忆码合并到内存。该命令从汇编语言语句创建可执行的机器码。所有数值都是十六进制格式,必须按一到四个字符输入这些数值。在引用的操作代码(操作码)前指定前缀记忆码。a [address] 参数address 指定键入汇编语言指令的位置。对 address 使用十六进制值,并键入不以“h”字符结尾的每个值。如果不指定地址,a 将在它上次停止处开始汇编。有关将数据输入到指定字节中的信息,请单击“相关主题”列表中的 Debug E(键入)。有关反汇编字节的信息,请单击“相关主题”列表中的 Debug U(反汇编)。说明: 用于小段程序的汇编及修改目标程序,所有输入的数字均采用十六进制, 用户装入内存的汇编语句是连续存放的,若没有指定地址,并且前面没有使用汇编命令,改语句被汇编到 CS:0100区域。示例:C:\debug -a 0100 0B06:0100 mov ah,9 0B06:0102 mov dx,0110 0B06:0105 int 21 (DOS功能调用)0B06:0107 ret 0B06:0108 db0B06:0110 db Hello$ 0B06:0116 (输入回车键离开汇编命令状态)-g (运行)Hello Program terminated normally - 另:C:\debug -a 0100 0B06:0100 mov ah,0a 0B06:0102 mov al,40 0B06:0104 mov cx,1 0B06:0107 int 10 (BIOS功能调用)0B06:0109 ret 0B06:010A -g @ Program terminated normally - 【范例】 a 命令支持所有形式的间接注册命令,如下例所示:add bx,34[bp+2].[si-1] pop [bp+di] push [si] ) 还支持所有操作码同义词,如下例所示:loopz 100 loope 100 ja 200 jnbe 200 对于 8087 操作码,必须指定 wait 或 fwait 前缀,如下例所示:fwait fadd st,st(3) ; this line assembles ; an fwait prefix 说明使用记忆码段的替代记忆码为 cs:、ds:、es: 和 ss:。远程返回的记

文档评论(0)

此项为空 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档