2024年6月8日发(作者:)

实验一 DEBUG命令的功能及使用

一 实验目的

掌握汇编语言基本运行环境和熟悉DEBUG调试程序的命令。包括:学习使用指令,掌握

常用的指令功能和简单程序设计;掌握DEBUG调试程序的命令,熟悉程序输入、存储器和

CPU寄存器及标志位的检查方法,单步、断点、连续等运行程序的调试方法。

二 实验内容

DEBUG的主要命令功能与格式

1.汇编命令A

格式:A [[<段寄存器名>/<段地址>:] <段内偏移>]

上式等价于:

(1)A <段寄存器名>:<段内偏移>

(2)A <段地址>:<段内偏移>

(3)A <段内偏移>

(4)A

功能:键入该命令后显示段地址和段内偏移并等待用户从键盘逐条键入汇编命令,逐条

汇编成代码指令,顺序存放到段地址和段内偏移所指定的内存区域,直到显示下一地址时用

户直接键入回车键返回到提示符“-”。

注:其中(1)用指定段寄存器的内容作段地址,(3)用CS的内容作段地址,(4)以

CS:100作地址。以后命令中提及的各种‘地址’形式,均指(1)、(2)、(3)中A后的地址

形式。

2.显示内存命令D

格式:D [<地址>/<范围>]

上式等价于:

(1)D <地址>

(2)D <范围>

(3)D

功能:以两种形式显示指定范围的内存内容。一种形式为十六进制内容,一种形式为以

相应字节的内容作为ASCII码的字符,对不可见字符以‘.’代替。

注:其中(1)以CS为段寄存器。(3)显示CS:100起始的一片内容。

3.修改内存命令E

格式:E <地址> [<单元内容表>]

上式等价于:

(1)E <地址>

(2)E <地址> <单元内容表>

其中<单元内容表>是以逗号分隔的十六进制数,或用’或”括起来的字符串,或者

是二者的组合。

功能:(1)不断显示地址,可连续键入修改内容,直至新地址出现后键入回车Enter

为止。(2)将<单元内容表>逐一写入由<地址>开始的一片单元。

4.填充内存命令F

格式:F <范围> <单元内容表>

功能:将单元内容表中的值逐个填入指定范围,单元内容表中内容用完后重复使用。

例如:-F 5BC:200 L 10 B2,‘XYZ’,3C

5.执行命令G

格式:G [=<地址>[,<断点>]]

上式等价于:

(1)G

(2)G=<地址>

(3)G=<地址>,<断点>

功能: 执行内存中的指令序列

注:(1)从CS:IP所指处开始执行

(2)从指定地址开始执行

(3)从指定地址开始执行,到断点自动停止。

6.内存搬家命令M

格式:M <源地址范围> <目标起始地址>

其中源及目标地址若仅输入偏移量,则隐含相对DS。

功能:把<源地址范围>中的内容顺序搬至<目标起始地址>起的一片连续单元。

例如:-M CS:100 110 600

把从CS:100起至CS:110止17个字节搬至DS:600至DS:610的一片单元。

7.结束DEBUG返回DOS命令Q

格式:Q

功能:返回DOS提示符下

8.显示修改寄存器命令R

格式:R [<寄存器名>]

上式等价于:

(1)R

(2)R <寄存器名>

功能: (1)显示当前所有寄存器内容,状态标志及将要执行的下一指令的地址,代码

及汇编语句形式。其中对状态标志FLAG以每位的形式显示,见下表。