欢迎来到天天文库
浏览记录
ID:42945818
大小:232.00 KB
页数:29页
时间:2019-09-26
《调试程序DEBUG》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、汇编语言程序设计主讲:陶雪丽E-mail:xueli_xl@126.com单位:河南师范大学计算机与信息技术学院调试程序DEBUGDEBUG程序的调用DEBUG命令的格式DEBUG的命令1.DEBUG程序的调用在DOS提示符下,可如下键入DEBUG启动调试程序:DEBUG[路径文件名][参数1][参数2]DEBUG后可以不带文件名,仅运行DEBUG程序。需要时,再用N和L命令调入被调试程序。命令中可以指定文件名,则在运行DEBUG的同时,还将指定的程序调入内存;参数1/2是被调试程序所需要用的参数。在DEBUG程
2、序调入后,根据有无调试程序及其类型相应设置寄存器组的内容,发出DEBUG的提示符“-”,此时就可用DEBUG命令来调试程序。1.DEBUG程序的调用运行DEBUG程序时,如果不带被调试程序,则所有段寄存器值相等,都指向当前可用的主存段;除SP之外的通用寄存器都设置为0,而SP指示当前堆栈顶在这个段的尾部;IP=0100h;状态标志都是清0状态。运行DEBUG程序时,如果带入的被调试程序扩展名不是.EXE,则BX,CX包含被调试文件大小的字节数(BX为高16位),其他同不带被调试程序的情况。运行DEBUG程序时,如果
3、带入的被调试程序扩展名是.EXE,则需要重新定位。此时,CS:IP和SS:SP根据被调试程序确定,分别指向代码段和堆栈段。DS=ES指向当前可用的主存段,BX.CX包含被调试文件大小的字节数(BX为高16位),其他通用寄存器为0,状态标志都是清0状态。2.DEBUG命令的格式DEBUG的命令都是一个字母,后跟一个或多个参数:字母[参数]命令的使用中注意:字母不分大小写;只使用16进制数,没有后缀字母;分隔符(空格和逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;每个命令只有按了回车键后才有效,可以用Ctrl
4、+Break中止命令的执行;命令如果不符合DEBUG的规则,则将以“error”提示,并用“^”指示错误位置。命令的参数许多命令的参数是主存逻辑地址,形式是“段基地址:偏移地址”。其中,段基地址可以是段寄存器或数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是默认段寄存器值。如果没有提供偏移地址,则通常就是当前偏移地址。对主存操作的命令还支持地址范围这种参数,它的形式是“开始地址结束地址”(结束地址不能具有段地址),或者是“开始地址L字节长度”。3.DEBUG的命令显示命令D(Dump)修改命令E(Ent
5、er)填充命令F(Fill)寄存器命令R(Register)汇编命令A(Assembler)反汇编命令U(Unassembler)运行命令G(Go)跟踪命令T(Trace)继续命令、退出命令Q(Quit)、命名命令、装入命令写盘命令、其他命令(1)显示命令D(Dump)D命令显示主存单元的内容,格式如下:D[地址];显示当前或指定开始地址的主存内容D[范围];显示指定范围的主存内容一个D命令只显示“8行×16个字节”(80列显示模式)内容。例如:-d100;显示数据段100h开始的主存单元-dcs:0;显示代码段的
6、主存内容-d2f0L20;显示ds:2f0h开始的20h个主存数据(1)显示命令D(Dump)例如,显示当前(接上一个D命令显示的最后一个地址)主存内容:-d1492:010041EBEA5EE30BF7C2-0100741C803C2E74A..^……t..<.t1492:011047833E75E002750A-803E7CE134008114G.>u..u..>
7、.4………1492:0170751AEB12525153E8-28010AC07558807Cu…RQS.(…uX.
8、逻辑地址连续16个字节的主存内
9、容16个字节的主存内容的ASCII字符显示不可显示字符用点“.”表示(2)修改命令E(Enter)E命令用于修改主存内容,有两种格式:E地址;格式1,修改指定地址的内容E地址数据表;格式2,用数据表的数据修改指定地;址的内容格式1,是逐个单元相继修改的方法。例如:键入eds:100DEBUG显示原来内容,用户可以直接输入新数据,然后按空格键显示下一个单元的内容,或者按“-”键显示上一个单元的内容;不需要修改可以直接按空格或“-”键;这样,用户可以不断修改相继单元的内容,直到用回车键结束该命令为止。(2)修改命令E(
10、Enter)格式2,可以一次修改多个单元,例如:-eds:100F3’XYZ’8D;用F3/’X’/’Y’/’Z’/8D这5个数据替代DS:0100~0104的原来内容若是数字,要用分隔符(空格或逗号)隔开。例如:-eds:100F378787A8D(3)填充命令F(Fill)F命令用于对一个主存区域填写内容,同时改写原来的内容,其格式为:F范围数据表该命令
此文档下载收益归作者所有