Debug调试程序的主要命令.doc
文本预览下载声明
实验二 Debug调试程序的主要命令
DEBUG..EXE程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。也是我们学习汇编语言必须掌握的调试工具,必须熟练掌握其一些的命令的使用。
一、DEBUG程序的启动和退出
1.直接启动
DEBUG.EXE是DOS环境下的可执行程序。在DOS提示符下键入命令:
如:C: DEBUG ↙
在调用DEBUG程序后,出现“一”提示符,等待使用DEBUG命令。
2.启动DEBUG并装入需要调试的用户程序
命令格式:
C: DEBUG [盘符:][路径][文件名.EXE][参数1][参数2]
二、DEBUG程序的常用命令
1.DEBUG下汇编语言的语法规则
① 所有数值全为十六进制数,且不需要加后缀‘H’;
② 只能使用DB或DW,直接把字节、字的数值或字符串的ASCⅡ码送入相应单元中;
③ 不允许使用变量和标号,但变量和标号可用直接地址代替,且直接地址加方括号;
④ 短、近和远转移或调用的目标地址,取决于到目标地址的字节位移量。远返回的助记符为RETF。
⑤ 修改存储单元字节操作数类型,用BY(BYTE PTR),修改存储单元字操作数类型,用WO(即WORD PTR)。段超越助记符为CS:、DS:、ES:和SS:。
2.DEBUG的常用命令
(1)汇编命令 A
格式:A [地址]
功能:从指定地址单元开始存放输入汇编语言的指令语句。若缺省起始地址,则从当前CS:100地址开始存放。用A命令输入程序语句完毕后,最后一行不要输入并直接按Enter键(或Ctrl+C),退出A命令。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。
例:-A 100
0B07:0100 MOV DL,41
0B07:0102 MOV AH,2
0B07:0104 INT 21
0B07:0106 INT 20
0B07:0108
(2)反汇编命令 U
格式1:U[起始地址]
格式2:U[起始地址][结束地址|L字节数]
功能:格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式。缺省起始地址,则从当前地址CS:IP开始。格式2将指定范围的内存单元中的目标代码转换成汇编指令。起始和结束地址范围是可选项,无此项则从当前的地址单元开始反汇编32个字节。
例:-U 0100 0107↙ ;从地址0100H处对指令语句进行反汇编
0B07:0100 B241 MOV DL,41
0B07:0102 B402 MOV AH,2
0B07:0104 CD21 INT 21
0B07:0106 CD20 INT 20
或-U 0100 L8↙,具有同样的效果。
(3)运行命令 G
格式:G[=起始地址][第一断点地址[第二断点地址……]]
功能:完整或分段执行程序。如果G命令不带参数,则完整地连续执行程序,直到程序结束或遇到INT 3
格式:T[=起始地址][正整数]
功能:从指定地址开始执行‘正整数’条指令,若缺省‘正整数’,表示执行一条指令,若两项都缺省,表示从当前CS:IP指示地址开始执行一条指令。
例:
(5)显示存储单元命令 D
格式1:D[起始地址]
格式2:D[起始地址][结束地址|字节数]
功能:格式1从起始地址开始按十六进制显示80H个字节单元的内容,每行16个单元,共8行,每行右边显示16个单元的ASCⅡ码,不可显示的ASCⅡ码则显示“·”。格式2显示指定范围内存储单元的内容,其他显示方式与格式1一样。如果缺省起始地址或地址范围,则从当前的地址开始按格式1显示。
例:-D 100 106 (等同于-D 100 L7)
0B07:0100 B8 10 00 BB 05 00 29 .......
(6)显示、修改寄存器命令 R
格式:R[寄存器名]
功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。
例:-R ↙ ;显示所有寄存器的内容及当前值(不能修改)
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000
DS=3000 ES=23A0 SS=138E CS=0B07 IP=0000 NV UP DI PL NZ NA PO NC
0B07:0108 CD20 INT 20 (此第三行显示的是CS:IP的当前值,指向下一条
显示全部