2024年6月8日发(作者:)
实验一Debug命令的使用
实验一Debug命令的使用
一、实验说明
1、 DEBUG简介
是DOS提供的用于调试可执行程序的一个工具软件。
在汇编语言程序调试中很常用。
DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符
下输入。
DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认
参数。
DEBUG命令的使用注意问题:
(1)字母不分大小写
(2)只使用十六进制数,但没有带后缀字母“H”
(3)命令如果不符合DEBUG的规则,则将以“error”提示,并
以“^”指示出错位置。
(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终
止命令的执行。
2、 Debug的调入和退出
以Windows环境为例,点击“开始/运行…”,在“运行”对话
框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态,如:
C:Documents and Settingsmjy>
然后输入命令:
>Debug
进入Debug调试状态,出现Debug命令提示府“-”,在此提示
符下可运行所需要的Debug 命令了。
退出Debug的命令:Q
3、 Debug常用命令
(1)汇编命令A,格式为:
- A [地址]
功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机
器指令代码从指定地址开始存放。若不指定地址,则系统从默认的地
址开始存放。按回车键退出汇编状态
应用:用于调试一条指令或几条指令组成的一个程序段。
(2)显示和修改寄存器命令R,格式为:
- R [寄存器名]
功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修
改;若不要修改,则按Enter 健。若未指定寄存器,则默认为显示所
有寄存器的内容。
应用:常用于通过寄存器的值查看指令的执行结果。
(3)内存单元内容的命令E,格式为:
- E 地址[内容表]
功能:若指定内容表,则用内容表中的内容代替指定地址开始的
存储单元的值;否则,从指定地址开始逐个单元显示其内容,并等待
用户修改,按空格键则继续显示下一单元的值,按回车键结束。例如:
-E 100
184E: 0100 89,78
其中,184E时数据段的段地址,0100是要修改的单元的偏移地
址,89为该单元的值,78为程序员键入的值。结果0100单元的值由
89H改变为78H。
应用:常用于在调试程序的过程中改变变量的初始值。
(4)显示内存单元内容的命令D,格式为:
- D [地址] 或–D [范围]
功能:前者为显示从指定地址开始的一段存储单元的值;后者为
显示指定范围内的存储单元的值。
例如:- D 200 ;显示从DS:200单元开始的各单元的值
- D 200 L10 ; 显示从DS:200单元开始的10个字节单元的值。
应用:常用于在调试过程中检查变量的值。
(5)单步执行命令T,格式为:
- T [=地址]
功能:从指定地址执行一条指令后停下来,显示寄存器内容和状
态值。若未指定地址,则执行当前指令的下一条指令。
(6)反汇编命令 U ,格式为:
-U [地址] 或 -U 范围
功能:从制定地址开始,反汇编32个字节,或对指定范围内的主
存内容进行反汇编。若没有指定地址,则接着上一个U命令的最后一
个单元开始;若还没有使用过U命令,则从当前CS:IP 开始。例如:
-U 100,106
1343:0100 B80302 MOV AX,0203
1343:0103 BB0540 MOV BX,4005
1343:0106 01D8 ADD AX,BX
其中,屏幕最左边是主存逻辑地址(段地址:偏移地址),中间
是该指令的机器代码,右边是对应指令的汇编语句格式。
(7)运行命令G, 格式为:
-G[ = 起始地址] [断点地址1,断点地址2,……,断点地址10]
功能:从等号后的起始地址开始运行,直到遇到断点或程序正常
结束。例如:
-G=100 106
则程序执行从100开始的程序段,到断点106停止。此时指令
ADD AX,BX并未执行。
二、实验目的及要求
1、汇编语言调试环境Debug的使用,重点掌握常用命令
(A,D,E,R,T,U,G)的使用,其
他指令在以后的学习中逐步掌握。
2、BCD码,ASCII码及用16进制数表示二进制码的方法。
三、实验内容
1、Debug程序的调入和退出
2、Debug常用调试命令的使用
3、MOV指令的使用
四、实验步骤
1、打 DEBUG 进入 DEBUG 控制,显示提示苻 '_ '。
2、用命令E100 将'A'的ASCII码填入内存。
3、用命令 D100 观察内存中的16进制码及屏幕右边的ASCII字
符。
4、用命令 E100 30 31 32 …… 3F将30H-3FH写入地址为100
开始的内存单元中,再用D 命令观察结果,看键入的16进制数是什么字
符的ASCII码?
5、用A、G命令运算下列各组16进制数加减并和你的手算结果
比较:
(1)34H,22H
(5)A758,347FH
6、用U、T命令单步执行上述运算,特别注意通用寄存器、段寄存
器、IP及标志位中ZF,CF 和AF的内容。
7、用R命令将AX,BX内容改写为1050H及23A8H。
五、实验报告
写出在DEBUG状态下编写、运行程序段的过程以及调试所中遇到
的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果
进行分析。
(2)56H,78H (3)A5,79H (4)1284H,5678H


发布评论