汇编语言实验_Debug命令的使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一Debug命令的使用

一、知识点

1、DEBUG简介

DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。在汇编语言程序调试中很常用。

DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。

DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。

DEBUG命令的使用注意问题:

(1)字母不分大小写

(2)只使用十六进制数,但没有带后缀字母“H”

(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。

(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。

2、Debug的调入和退出

以WIN2000环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态:

C:\Documents and Settings\lfy>

然后输入命令:

>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 R D E T)的使用,其

他指令在以后的学习中逐步掌握。

2、利用Debug命令,调试采用不同寻址方式的指令的执行结果,从实践中加深对寻址

方式和MOV指令的理解。

三、实验内容

1、Debug程序的调入和退出

2、Debug常用调试命令的使用

3、MOV指令、XCHG指令的调试

四、实验步骤

1、先进行简单的指令练习:

1)D命令(显示):-d, -d 0af9:0100 , -d 0af9:0100 0107, -d ds :0100 0107 , -d 0100 0107,

-d 0100 L 8

2)E命令(修改):-e 0af9 : 0100 41 ‘a’, -e 0100 ‘ABCD’

修改后,用-D查看!

3)-R寄存器显示修改命令:-r -r ax 并修改ax中内容

4)汇编命令-A:做下面题。通过-r查看寄存器变化,-t单步

调试(看下题)-a 执行后默认地址,-a 段地址:偏移地址是

指定地址编写程序

5)-U反汇编命令:-a后编写语句,-d查看,-u进行反汇编

6)-T单步执行(看下题)

7)-Q 退出命令

2、练习:

首先输入以下程序段,然后单步执行并查看结果;改变寄存器AX的初始值后再运行,并查看结果。带下划线的部分为程序员输入的内容。

在DEBUG环境下,所有的数据均以十六进制输入和显示。

-A

137B:0100 mov ax,20

137B:0103 mov bx,ax

137B:0105 add ax,bx

137B:0107 mov [2000],ax

137B:010A

-T=0100

AX=0020 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=137B ES=137B SS=137B CS=137B IP=0103 NV UP EI PL NZ NA PO NC

137B:0103 89C3 MOV BX,AX

-T=0103

AX=0020 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=137B ES=137B SS=137B CS=137B IP=0105 NV UP EI PL NZ NA PO NC

137B:0105 01D8 ADD AX,BX

-T

AX=0040 BX=0020 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

相关文档
最新文档