网站大量收购独家精品文档,联系QQ:2885784924

第4章 DEBUG调试课件.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 DEBUG调试课件

第4章 DEBUG调试 ; DEBUG.EXE是Windows自带的用于调试可执行程序的一个工具软件,可在命令提示符下计入,同时也是进行汇编语言程序设计的一种最有效的调试工具。由于DEBUG调试程序可以对单条指令或几条指令组成指令序列进行汇编、执行,并可以观察到指令执行前后在寄存器或内存中的结果,并对指令中错误的使用予以拒绝汇编,对于初学指令的读者,通过DEBUG调试程序对指令的调试,不但对指令的功能,格式,影响FLAGS寄存器的状况有个直观的了解,还可以进一步了解数据在计算机中存放的格式、使用指令时应该注意的问题乃至计算机的工作原理。 ;4.1 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命令的格式; (6)许多与内存单元有关的DEBUG命令的参数是内存物理地址,形式是“段地址:偏移地址”。其中。段地址可以是段寄存器名称或具体的数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是默认段寄存器值。如果没有提供偏移地址,则通常就是当前偏移地址。对内存单元操作的命令还支持地址范围这种参数,它的形式是“开始地址 结束地址”(结束地址不能具有段地址),或者是“开始地址L字节长度”。;4.2 DEBUG命令 ; 4.2.1.显示内存单元内容命令D(DUMP) D命令显示内存单元的内容,它的格式有以下两种: (1)D地址 功能:显示当前或指定开始地址的内存内容,如下图: 由图可见,在DEBUG调试程序的提示符下,键入D命令,显示当前内存内容(若前面已有D命令,则接着上一次D命令显示的最后一个字节显示)。 一个D命令一次显示连续8×16字节单元的内容,对于每一行,最左边部分0AF5:0100是内存物理地址,其中,0AF5H是数据段的段地址,0100H是该段的偏移地址;中间是连续16个字节的内存内容(16进制数,以字节为单位),右边部分是这个16个字节内容的ASCII字符显示,不可显示字符用点“.”示。在DEBUG调试程序的提示符下,键入D0000:0010命令,显示从物理地址为0000H:0010H字节单元开始的连续8×16字节单元的内容,其余情况同D命令。;(2)D范围 功能:显示指定范围的主存内容,如图所示:;4.2.2.修改命令E(Enter) E命令用于修改内存单元的内容,它有两种格式: (1)E地址

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档