debug命令.docx

上传人:b****3 文档编号:4053414 上传时间:2023-05-06 格式:DOCX 页数:14 大小:169.83KB
下载 相关 举报
debug命令.docx_第1页
第1页 / 共14页
debug命令.docx_第2页
第2页 / 共14页
debug命令.docx_第3页
第3页 / 共14页
debug命令.docx_第4页
第4页 / 共14页
debug命令.docx_第5页
第5页 / 共14页
debug命令.docx_第6页
第6页 / 共14页
debug命令.docx_第7页
第7页 / 共14页
debug命令.docx_第8页
第8页 / 共14页
debug命令.docx_第9页
第9页 / 共14页
debug命令.docx_第10页
第10页 / 共14页
debug命令.docx_第11页
第11页 / 共14页
debug命令.docx_第12页
第12页 / 共14页
debug命令.docx_第13页
第13页 / 共14页
debug命令.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

debug命令.docx

《debug命令.docx》由会员分享,可在线阅读,更多相关《debug命令.docx(14页珍藏版)》请在冰点文库上搜索。

debug命令.docx

debug命令

实验目的:

1、掌握DEBUG常用命令。

2、掌握汇编语言程序的一般格式

3、掌握使用masm编译和连接汇编语言程序。

4、学习如何用debug进行程序调试

实验设备:

1、硬件环境

微型计算机(Intelx86系列CPU)一台

2、软件环境

Windows98/2000/XP操作系统、调试程序DEBUG.EXE。

实验内容:

一、DEBUG程序的调用

1、打开windows命令窗口

打开windows命令窗口的步骤:

选择“开始”→”运行”

(1)在windows98/xp环境中,输入“command”命令;

(2)在windows2000环境中,输入“cmd”命令;

2、启动debug

在命令窗口中启动DEBUG,可键入命令:

DEBUG文件名[参数]

在DEBUG启动成功后,将出现提示符“-”,此时就可用DEBUG命令来调试程序。

关于使用命令的几点说明:

●命令是单个字母

●出现提示符“-”后才能输入命令,在按“回车”键后,该命令才开始执行。

●DEBUG把键入的数字均看成十六进制数

二、DEBUG的主要命令

1显示与修改寄存器

1)r [寄存器名]

功能:

显示和修改寄存器内容

例:

-r;显示所有寄存器的内容

 

显示所有寄存器和标志位

R

系统响应如下:

这是一个80列显示的系统表示,其中第一行8个寄存器的内容,第二行显示5个寄存器的内容,和置成的8个标志位的状态,第三行显示了现行的CS:

IP所指的指令的机器码和反汇编符号,这就是下一条将要执行的指令。

(显示和修改标志位状态)在8088中共有9个标志位,其中追踪标志位T(trace)不能直接用指令改变,其他可以。

显示时每个标志位有两个字母组成:

它说明是“

显示和修改某个寄存器内容“置位”状态(SET)还是“复位”状态(clear),显示的次序和符号如下

Namesetclear

Overflow(yes/no)ovnv

Direction(增量/减量)DNUP

Interrupt(allow/forbidden)EIDI

Sign(positive/negtive)NGPL

Zero(yes/no)ZRNZ

(辅助进位)Auxiliarycarry(yes/no)ACNA

Parity(odd/even)PEPO

进位Carry(yes/no)CYNC

显示和修改标志位

Rf

1:

press"enter"andnochange

2:

changealloralone,justinput相反状态的标志位;次序任意。

-rax;

修改寄存器的值,

RAX

现在有两种操作:

PRESSENTER,KEEPDTHECONTENTUNCHANGE,OR

INPUT1~4CHARACTER的十六进制数值,来改变AX寄存器的内容,

2)rf

功能:

显示和修改标志位

2、显示与修改寄存器存储单元内容(了解程序执行结果及检查内存单元所装的内容是什么)

1)d [范围]([地址]或者[地址范围])

功能:

显示指定范围内的内存单元内容。

其中范围的格式:

①d起始位置

从开始位置显示128个字节的内容(即40H个字节(相应于系统的40列显示格式)或者80H个字节(相应于80列显示格式)如果没有指定地址,则D命令显示最后一个单元后面的地址。

如果以前没有输入D命令,那么约定地址是DEBUG初始化的寄存器的内容,加上地址的偏移量100H,因此,通过不带有参数的连续的D命令,可能转贮内存连续的40H字节或者80H个字节区域的内容

例:

d1381:

100

说明:

●xxxx:

yyyy——内存单元的段地址:

内存单元的偏移量(16进制数)

●中间显示区域是内存单元(十六进制的形式),每行显示16个字节的内容;(用两位16进制字符数显示内存区每个字节的内容,字节间由空格分开,

●右边以“字符”显示内存单元值。

(该行显示的相应字节的ASC2字符,若没有与之相应的字符,则用点表示。

②d起始位置结束位置

从开始位置显示到结束位置

例:

dds:

0f

③d起始位置L长度

从从开始位置显示指定长度的内容

例:

dds:

0L10

2)e 地址字节值表(修改内存单元内容的命令)

功能:

用值表中的值替换从“地址”开始的内存单元内容

两种基本格式:

1:

用命令给定的内容表去代替指定范围的内存单元的内容:

E

其中内容表为一系列用空格隔开的16进制字节或者是用引号括起来的字符串,例如:

2:

以上是替代,实则是修改内存单元的内容,因它不管原内存是什么,即用新值加以取代。

2。

选择。

用D显示地址和一个单元的的字节,然后等待用户键入。

E〈ADDRESS〉

输入以上命令后,将显示指定单元的地址和原有的内容,用户可以选择以下操作

输入一个或两个字符的16进制的数,去代替这个字节的内容,然后执行下面的任一操作。

PRESSENTER,displaynextaddressanditscontents,thenexcutetheoperationabove;

Pressspaceagainthenyoucancontinuedomodifyoperation.

3.pressapunctuationmark,returntoformeraddress,

例:

d1af5:

0

e1af5:

0123456

d1af5:

0

f 范围字节值表

功能:

用值表中的值填充指定范围的内存单元内容,其中范围通常是1)中的后两种格式。

例:

d1af5:

0100

f1af5:

0100l2012345

d1af5:

0100

d1af5:

0

f1af5:

0f‘abcdef’

d1af5:

0

3编程与调试命令

1)a [地址]

功能:

输入汇编指令

例:

eds:

200‘abcd$’

;从地址ds:

200输入字符串‘abcd’,以‘$’为结束字符.

dds:

200

a100

输入以下命令

movdx,200

movah,9

int21;调用9号功能显示“字符串”。

“字符串”的起始地址为ds:

200

int20;结束程序

2)u [范围]

功能:

反汇编,显示机器码所对应的汇编指令

例:

u100

3)g [=起始地址][断点地址]

 

两种操作,1执行正在调试的不设断点的程序,格式为:

G或者G[始地址]

前者使用CS:

IP作为始地址,后者以指定的始地址,这种选择适用于不同参数,去多次运行程序,以便对程序执行测试,

2:

执行正在调试的设有断点的的程序,

G[=ADDRESS断点地址断点地址

功能:

从当前地点开始执行,到终点结束

●如未指定起始地址则从当前的cs:

ip指示的地址开始执行。

●如未指定断点地址,到终点结束。

例:

g=100;显示字符“abcd”

4)t [=地址][正整数](TRACECOMMAND)

功能:

跟踪执行。

从指定地址开始执行‘正整数’条指令,若缺省‘正整数’,表示执行一条指令,若两项都缺省,表示从当前CS:

IP指示地址开始执行一条指令。

5)P命令

p [=地址][正整数]

功能:

其使用方式与t命令相同,但不进入子程序调用或软中断

例:

p=100

p

p

三、汇编语言程序上机过程。

1、建立汇编语言程序源文件。

可使用任何一个文本编辑器(如EDIT.com,写字板,word软件)编辑源文件,源文件的扩展名通常取为.asm。

例:

在屏幕上显示字符串‘hello,world.’

参考实例:

stack1segmentstack;

dw256dup(?

stack1ends

data1segment

msgdb'hello,word$'

data1ends

code1segment

assumecs:

code1,ds:

data1,ss:

stack1

start:

movax,data1

movds,ax

movdx,offsetmsg

movah,9

int21h

movah,4ch

int21h;终止程序的执行,返回dos

code1ends

endstart

2、汇编源文件,形成目标文件。

1)打开windows命令窗口(参见实验一)

2)进入masm程序的安装目录。

(通常为c:

\masm)

例:

cdc:

\masm;cd命令为dos操作系统的命令

3)汇编文件

在dos命令窗口中可键入命令:

masm

若无错,则形成.OBJ目标文件和.LST列表文件。

可用Dir命令(dos操作系统的命令)查看。

4)列表文件的使用

列表文件可以用文本编辑器打开。

若源文件有语法错误,据错误提示(可以在列表文件中查找),返回步骤1,修改源文件。

下面给出列表文件实例:

0000stack1segmentstack

00000100[dw256dup(?

?

?

?

?

]

0200stack1ends

0000data1segment

000068656C6C6F2C77msgdb'hello,world.$'

6F726C642E24

datt1ends

t2.ASM(7):

errorA2000:

Blocknestingerror

0000code1segment'code'

assumecs:

code1,ds:

data1,ss:

stack1

0000start:

0000B8----Rmovax,data1

00038ED8movds,ax

0005BA0000Rmovdx,offsetmsg

0008B409movah,9

000ACD21int21h

000CB400movah,4c00h

t2.ASM(16):

errorA2050:

Valueoutofrange

000ECD21int21h

0010code1ends

endstart

SegmentsandGroups:

NameLengthAlignCombineClass

CODE1.............0010PARANONE'CODE'

DATA1.............000DPARANONE

STACK1.............0200PARASTACK

Symbols:

NameTypeValueAttr

MSG..............LBYTE0000DATA1

START.............LNEAR0000CODE1

@FILENAME...........TEXTt2

19SourceLines

19TotalLines

8Symbols

50254+416098Bytessymbolspacefree

0WarningErrors

3SevereErrors

三、形成可执行文件。

在dos命令窗口中可键入命令:

LINK

若有错,据错误提示,返回步骤1,修改错误。

若无错,则形成.EXE可执行文件。

可用Dir命令(dos操作系统的命令)查看。

四、运行程序

在命令窗口中键入可执行文件名,即可执行该程序。

五、调试程序

运行结果不对,需调试程序,查找原因。

1)返回步骤1查看源文件,查找错误,修改源文件。

2)若无法通过查看源文件找出错误,可在DEBUG下调试.EXE文件,找出错误之处,再返回步骤1。

用debug调试可执行程序如下:

1启动debug,同时装入可执行文件。

Debug可执行文件名

2查看程序。

Ucs:

0;代码段由系统自动初始化,段地址在cs,起始偏移量在ip

与源程序对照可知,程序装入后,数据段data1的段地址为13fd。

先用D命令查看偏移量为0开始的13个单元,即字符串msg的内容。

3运行程序。

可用G、P、T命令。

实验报告要求:

1、实验目的和实验内容。

2、简述debug的常用命令R、D、E、A、U、T、P、G的功能。

(举例说明)

3、汇编、连接、调试时产生的错误,其原因及解决办法。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2