- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 智慧国资管理系统需求说明.docx VIP
- 认识显微镜练习使用显微镜.ppt VIP
- 护士招聘综合知识考核题库900题(历年真题)2.doc VIP
- 盾构施工技术(施工工艺与控制要点).pptx VIP
- 第18讲 合并同类项 整式的加减(教师版)-新七年级数学暑假讲义(浙教版).docx VIP
- 2023江西省数字产业集团有限公司招聘试题及答案解析.docx
- 文言文实词和虚词.pptx VIP
- 第16讲 用字母表示数 代数式及其求值(教师版)-新七年级数学暑假讲义(浙教版).docx VIP
- JGJT178-2009 补偿收缩混凝土应用技术规程-行业标准.pdf
- 护理教学秘书竞聘ppt.pptx
文档评论(0)