第4章 DEBUG调试.pptVIP

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 DEBUG调试 主讲人:××× DEBUG.EXE是Windows自带的用于调试可执行程序的一个工具软件,可在命令提示符下计入,同时也是进行汇编语言程序设计的一种最有效的调试工具。由于DEBUG调试程序可以对单条指令或几条指令组成指令序列进行汇编、执行,并可以观察到指令执行前后在寄存器或内存中的结果,并对指令中错误的使用予以拒绝汇编,对于初学指令的读者,通过DEBUG调试程序对指令的调试,不但对指令的功能,格式,影响FLAGS寄存器的状况有个直观的了解,还可以进一步了解数据在计算机中存放的格式、使用指令时应该注意的问题乃至计算机的工作原理。 4.1 DEBUG命令格式 4.1.1 DEBUG调试程序的启动 4.1.2 DEBUG命令的格式 4.1.1 DEBUG调试程序的启动 在命令提示符下,可键入如下命令启动DEBUG调试程序: DEBUG [路径\文件名] [参数1] [参数2] [路径\文件名]是供DEBUG调试程序调试的程序名称及路径。若Debug后不带文件名,仅运行Debug程序,在需要时,再用N和L命令调入被调试程序;若命令中带有被调试程序名,则运行Debug的同时,还将指定的程序调入主存;[参数1][参数2]被调试程序所需要的参数。 “DEBUG 文件名”方式的调试方式 只启动DEBUG的调试方式 在Debug程序调入后,根据有无被调试程序及其类型相应设置寄存器组的内容,发出Debug的提示符此时就可用Debug来调试程序。 若启动DEBUG调试程序时,被调试程序扩展名是.EXE,则需要重新定位。 此时,CS:IP和SS:SP根据被调试程序确定,分别指向代码段和堆栈段。DS=ES指向当前可用的主存段,BXCX包含被调试文件大小字节数(BX为高16位),其他通用寄存器为0,状态标志都是清0状态。 如上图所示,被调试的程序名是XIANSHI.EXE,在DEBUG调试程序提示符“-”下键入R命令,是显示当前CPU中所有寄存器的值,可见,CS:IP=0B60H:0000H(DEBUG调试程序中所有的数据均为十六进制,但不加尾标H), SS:SP=0B4BH:0000H,是由被调试的程序XIANSHI.EXE决定的,分别指向代码段和堆栈段。DS=ES=0B3BH,BXCX=000001A4H,表示被调试的文件XIANSHI.EXE的大小是000001A4H字节,其它寄存器均为0,而 NV UP EI PL NZ NA PO NC 表示FLAGS寄存器的OF=0,DF=0,IF=0 ,SF=0 ,ZF=0, AF=0, PF=0 ,CF=0。 标志位的符号表示如下表所示: 若启动DEBUG调试程序时,不带被调试程序,则所有段寄存器值相等,都指向当前可用的主存段;除SP之外的通用寄存器值都设置为0,而SP指示当前堆栈顶在这个段的尾部;IP=0100H;状态标志都是清0状态。 如下图所示: 若启动DEBUG调试程序时,被调试程序扩展名不是.EXE,则(BX∥CX)包含被调试文件大小的字节数(BX为高16位),其他同不带被调试程序的情况。 如下图所示: 4.1.2 DEBUG命令的格式 Debug的命令都是一个字母,后跟一个或多个参数,即:字母[参数]。 在使用DEBUG命令时应注意: (1)字母不分大小写,如A和a; (2)只使用16进制数,没有后缀字母H或h; (3)分隔符(空格或逗号)只在两个数值之间是 必须的,命令和参数间可无分隔符 (4)每个命令及参数输入后必须按回车键后才有 效,可以用Ctrl+Break中止命令的执行; (5)命令如果不符合Debug的规则,则将以 “error”提示,并用“^”指示错误位置。 (6)许多与内存单元有关的DEBUG命令的参数是内存物理地址,形式是“段地址:偏移地址”。其中。段地址可以是段寄存器名称或具体的数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是默认段寄存器值。如果没有提供偏移地址,则通常就是当前偏移地址。对内存单元操作的命令还支持地址范围这种参数,它的形式是“开始地址 结束地址”(结束地址不能具有段地址),或者是“开始地址L字节长度”。 4.2 DEBUG命令 4.2.1、显示内存单元内容命令D(DUMP) 4.2.2、修改命令E(Enter) 4.2.3、填充命令F(Fill) 4.2.4、寄存器命令R(Register) 4.2.5、汇编命令A(Asemble) 4.2.6、反汇编命令U(Unassemble) 4.2.7、运行命令G(Go) 4.2.8、

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档