- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用debug调试程序
实验二 用DEBUG调试程序
一、实验目的
学习利用DEBUG调试程序的基本思想及方法
二、实验环境:
硬件:PC微机
软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE
三、实验内容
利用DEBUG调试程序,可以将一个可执行程序(如.EXE、.COM等)装入内存中,并接管对程序运行的控制权,通过采取如反汇编、断点运行、单步执行、寄存器内容修改等方法,对可执行程序进行跟踪、调试,以找出其中的设计错误,然后再对源程序进行相应修改,重新生成正确的可执行程序。
准备被调试程序:
假定所有有关文件均在当前路径C:\MYTEST下,按照实验一的步骤生成一个被调试的可执行
进入DEBUG环境:(其中斜体部分由键盘输入。)
其中,短线‘-’作为DEBUG环境的操作提示符,在此提示符下,可以输入各种DEBUG命令,对可执行程序TEST.EXE进行跟踪调试。
主要调试命令:
反汇编命令U:将存储器中的二进制数据翻译成较有意义的助记符形式,以帮助理解。一般常用以下格式:
-U↘:从当前IP处开始,对连续约32字节内容反汇编。如对TEST.EXE,刚装入DEBUG时的IP=0000,则在输入U命令后有如下显示:
在上例中,12B7:0000表示CS:IP的内容(其中CS的值是动态值);B8B612代表该处存放的二进制数据,亦即指令MOV AX,12B6的机器代码;当连续约32字节的数据反汇编完后,重新回到DEBUG提示符“-”下,如果再键入U命令,则将继续对后面的内存区反汇编。
特别应该注意的是,由于反汇编命令针对内存区的二进制数据,而被调试程序仅占内存区的某一部分,故反汇编出来的内容并非全是被调试程序的代码,如上例中的JMP 0063以后的部分,显然不是TEST.EXE的内容。另外还需注意,DEBUG默认使用十六进制。
–U 0123↘:从指定的IP=0123处开始,对连续约32字节内容反汇编。
–U 0123 0143↘:从指定的IP=0123处开始反汇编,直至指定的0143处结束。
显示寄存器命令R:显示或修改寄存器的内容。一般常用以下形式:
-R↘:显示所有寄存器当前的内容及当前将执行的指令。如对TEST.EXE,在程序运行之前,键入R命令:
在显示寄存器内容时,标志寄存器F(或程序状态字寄存器PSW)表示成各个分离的标志位,其意义如下表所示:
溢出 方向 中断 符号 零 辅助进位 奇偶 进位 0 NV UP DI PL NZ NA PO NC 1 OV DN EI NG ZR AC PE CY -R AX↘:显示指定的AX寄存器当前的内容,并等待键入新值;如果不作修改,可直接回车。如:
-R F↘:显示标志寄存器F各个标志位的内容,并等待键入新的标志位;如果不作修改,可直接回车。如:
3)运行命令G:使程序在DEBUG控制下运行,一般有全程、断点运行两种方式。
-G↘:控制程序由当前IP处运行,直至程序结束。如果当前IP为初始值,其作用则相当于直接在DOS下运行程序,一般用于快速观察程序的运行情况。
-G 0123↘:控制程序由当前IP处运行,直至指定的断点IP=0123H处,程序暂停,显示各个寄存器的当前值及断点处指令,然后返回DEBUG提示符“-”下。如对TEST.EXE,若想观察字符串显示的入口参数是否设置好,则可以断点运行至000A处:
断点一般选取在需要观察的地方,当程序停下来后,可以根据各方面的情况(如寄存器、缓冲区、标志等)来判断程序是否运行正确。
单步命令T:控制程序运行一条指令后暂停,显示各个寄存器的当前值及断点处指令,然后返回DEBUG提示符“-”下。如对TEST.EXE,若当前IP为初始值,则键入T命令后有如下显示:
单步命令一般用于需对程序运行作仔细分析的地方,如判断分支转移、观察运算结果等。若能综合运用断点及单步指令,则可大大提高DEBUG 调试的速度及效率。但应注意,当IP指针位于INT 21H一类指令处时,执行T命令将会使程序进入该功能调用子程序中,因此,这种情况下最好不用T命令,而用断点运行命令跳过该类功能调用指令。
显示内存命令D:以十六进制及ASCII两种方式显示内存区的二进制数据,通常用来观察数据段内的缓冲区内容。一般常用以下二种形式:
-D↘:从0000单元开始,连续显示128个内存单元的内容,如果继续键入D命令,则继续显示后128个单元内容。如对TEST.EXE,若想观察字符串显示时的字符串内容是否正确,则可在程序断点运行至000A处,键入D命令:
在上例中,128个单元分成8行,每行16个单元,每个单元的内容分别以十六进制形式和ASCII
您可能关注的文档
- 熟悉DEBUG调试环境实验.docx
- 实验二 数据处理实验.doc
- 计算机硬件实验指导书2009.doc
- 汇编实验一DEBUG.doc
- 电科08级微机原理与接口试验自编教材.doc
- 微机原理实验指导书(2012年机械专业用).doc
- 微机原理与接口技术实验指导书12.doc
- 汇编实验-Debug的基本使用1.doc
- 实验五__汇编实验过程与DEBUG工具使用.doc
- 实验一 Debug命令的使用.docx
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
最近下载
- 现代西班牙语学生用书1目录.pdf
- 中山农村商业银行股份有限公司2021年小型微型企业贷款专项金融债券信用评级报告.pdf
- 设备采购、运输方案、设备安装调试、设备巡检、产品售后、安装类设备253页.doc VIP
- 《技规教案》课件.ppt
- 初中历史_中华民国的创建教学设计学情分析教材分析课后反思.doc
- H7车组合仪表内部参数调节方法 (1).pdf VIP
- 重汽豪沃(HOWO)T5G SAC仪表、驾驶室过度线针脚定义驾驶室电器部件讲解.pdf VIP
- T5T7NanoBCU TFT仪表服务站维修培训手册.pdf VIP
- 钢琴谱学习Parla Piu Piano 降E-降G.pdf
- T7H TFT仪表、NanoBCU系统简介.ppt VIP
文档评论(0)