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

debug命令学习指导.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
调试程序 阳BUG EXE解析 1、 debug是什么? DEBUG.EXE是DOS捉供的可用于调试可执行程序的一个工具软件,也是可用于汇编 语言程序设计的一种调试工具。 DEBUG也是软件开发的重要调试工具,这是因为DEBUG除了可运行汇编语言程序外, 还可肓接用来检杳和修改内存单元,装入、存储及启动运行程序,检杳及修改寄存器。也就 是说DEBUG可深入到计算机的基本级上,可使用户更紧密的与计算机中真正进行的工作相 联系。 2、 如何启动debug命令来调试程序? 启动DEBUG的一般命令如下:DEBUG [路径\文件名][参数1][参数2] 其屮:文件名指定被调试的文件,包括文件名和后缀,参数表是被调试文件运行时所需要的 参数。被调试的文件可以是系统中的任何文件,但通常它们的后缀为EXE或COMo当 DEBUG启动成功后,将显示连接符“?”,这时,可输入各种命令。 注意: ?运行Debug程序时,如果不带被调试程序,则所冇段寄存器值相等,都指向当前可 用的主存段;除SP之外的通用寄存器都设置为0,而SP指示当前堆栈顶在这个段的尾 部;IP=0100h;状态标志都是清0状态。 ?运行Debug程序时,如果带入的被调试程序扩展名是.EXE,则需要重新定位。此时, CS : IP和SS : SP根据被调试程序确定,分别指向代码段和堆栈段。DS=ES指向当而可 用的主存段,BX.CX包含被调试文件大小的字节数(BX为高16位),其他通用寄存器 为0,状态标志都是清0状态。 标志名称 溢出OF方向DF 中断IF负号SF零ZF 辅助进位AF 奇偶PF进位CF 置位状态1 OV DN El NG ZR AC PE CY 复位状态0 NV UP DI PL NZ NA PO NC 表1 DEBUG屮标志位的符号表示 3、DEBUG的命令及其参数 (-*) DEBUG的命令 Debug的命令都是一个字母,后跟一个或多个参数: 字母[参数]。 命令的使用中注意: 字母不分大小写; 只使用16进制数,并且不加尾缀“H”; 分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符。因 此下列这些命令是等价的: des: 100 110 d cs: 100 110 d, cs: 100, 110 只有在按ENTER键Z后,输入的命令才有效。可以用Ctrl+Break中止命令的执行; 如果遇到语法出错,那么就显示“eiror”字样, 如: d cs: 100 cs: 110 Aerror 错误原因是,命令D要求笫二个地址中只包含16进制的偏移值。 不能使用符号常量和符号地址。 不能使用绝大部分伪指令,但两个最常用的伪指令DB和DW能被使用,用于直接把字 节和字数据置人相应存储单元。如: DB 1, 2, 3, 4, “ABCD” DW 1234, 5678 可以使用属性操作符“PTR”对DEBUG不能明确类型的操作数进行说明。如:INC BYTE PTR [BX]o DEBUG的A命令汇编程序能根据转移目标地址的距离自动地汇编出短、近或远的转 移或调用指令。当然,这也能由“SHORT”、“NEAR PTR”或FAR PTR”对转移目标地址进行 说明来实现。 远返回指令的助记符在DEBUG中为RETFo 指令前缀助记符必须在和关的指令Z前输入,也町以分別放在不同的行。 串操作指令只能用其字节型或字型的助记符形式,如:MOVSB、CMPSW等。 nJ以使用段超越前缀助记符CS:、DS:、ES:和SS:。如: DS: MOV AL, [BP] (二)DEBUG的命令参数 许多命令的参数是主存逻辑地址,形式是“段地址:偏移地址”。其中,段地址可以 是段寄存器或数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是缺省段寄 存器值。如果没有提供偏移地址,则通常就是当前偏移地址。例如:1000:0, ds: 10, cs:30 等; 对主存操作的命令还支持地址范围这种参数,从哪个地址开始,到哪个地址结束。它有 二种表示方式: 地址地址——前者表示起始地址,要用“段值:偏移量”来表达,后者表示终止地 址,只用“偏移量”来表示; 例如:200:50 100——段值为200,偏移量从50至I」100的内 存区域, 地址长度——前者表示起始地址,要用“段值:偏移最”来表达,后者表示该区域 的大小,用字母L开头的数值來表示。 例如:200:50 L100——段值为200,偏移量从 50开始的100个字节区域。 4、DEBUG命令的使用 DEBUG的命令共有19条,这里具体介绍常用的几条,其余的请同学们课示自行消化。 装人命令(Load) 用途:把文件或特定磁盘扇区的内容加载到内存。 说明:用单个Load命令可装入的最大扇区数是80H。如果出现读盘错,则D

文档评论(0)

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

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

1亿VIP精品文档

相关文档