文档详情

实验动态调试程序DEBUG1.ppt

发布:2017-06-20约4.2千字共21页下载文档
文本预览下载声明
动态调试程序DEBUG 一、 DEBUG的启动与退出 1.DEBUG的启动 DEBUG的启动格式如下: 运行DEBUG 或在DOS 命令提示符下输入命令DEBUG DEBUG将从100H开始装入命令,然后显示出提示符“-”。等待用户进一步输入命令。 DEBUG命令中使用的地址格式约定如下: [段地址:]位移量 其中,段地址可以是段寄存器名,或者是十六进制数,也可以默认。例如: CS:0100 2212:0100 而地址范围的格式为 2.退出DEBUG 当完成动态调试任务时,可使用Q命令退出并返回操作系统。格式如下: CD ?Q↙ 二、 汇编、执行、跟踪和反汇编 汇编、执行、跟踪和反汇编是DEBUG的一组最基本操作。在DEBUG下汇编一小段程序后,就可以进入执行或跟踪执行过程,然后将该程序反汇编出来。 1.A命令(汇编) A是1条逐行汇编命令,主要用于小段程序的汇编和修改目标程序。使用逐行汇编命令汇编程序时,一般不允许使用标号和伪指令。但在MS-DEBUG中允许使用DB和DW这两条伪指令。汇编命令的格式如下: A [地址] 其中,“地址”为开始汇编的地址,若没有“地址”,则从当前地址开始汇编。A命令用Ctrl+C或按回车键退出汇编。汇编过程中发现错误时,显示出1个“?”并要求重新输入。 使用A命令来汇编小段程序往往比使用汇编和连接程序方便。汇编好的程序也可以用写盘命令存在磁盘上。 【例】 汇编一小段程序。 A↙ 2A7D:0100 MOV AX,0201 ;地址自动给出,逐行输入语句 2A7D:0103 MOV BX,0200 2A7D:0106 MOV CX,0001 2A7D:0109 MOV DX,0000 2A7D:010C INT 13 2A7D:010E INT 3 2A7D:010F ↙ ;结束输入 2. G命令(执行) G命令用来启动运行一个程序或程序的一段。它的格式如下: G [=始址][断点地址…] 其中,断点最多允许设置10个。如果G命令不带参数,则从头运行装入的程序,运行后仍返回DEBUG。如G命令后有断点地址,则程序执行到断点地址时暂停并显示出各寄存器状态。 【例】 例如,执行上例的小程序。 ?G=100 ↙ (从地址100H处开始执行) AX=8000 BX=0200 CX=0001 DX=0001 SP=FFEE BP=0000 SL=0000 D1=0000 DS=2A7D ES=2A7D SS=2A7D CS=2A7D IP=010E NV UP EI PL NZ NA PO CY 2A7D:010E CC INT 3 3. T命令(跟踪执行) T命令用来逐条跟踪程序的执行,它的格式是: T[=地址][跟踪命令条数] 每条指令执行后,都要暂停并显示各寄存器的内容。跟踪执行实际上是单步执行。在分析程序时希望不断跟踪程序执行路径,从而分析出程序执行过程的细节。例如: ?T=0100 3 ↙ 4. U命令(反汇编) U命令可以对二进制代码程序作出反汇编,常用于分析和调试目标程序。它的格式 如下: U[地址] 例如,反汇编前面汇编的程序。 ?U 100↙ (从地址100H处开始执行) 2A7D:0100 B80102 MOV AX,0201 ;自动给出反汇编结果 2A7D:0103 BB0002 MOV BX,0200 2A7D:0106 B90100 MOV CX,0001 2A7D:0109 BA0000 MOV DX,0000 2A7D:010C CDL3 INT 13 2A7D:010E
显示全部
相似文档