debug命令Word文档格式.docx
《debug命令Word文档格式.docx》由会员分享,可在线阅读,更多相关《debug命令Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
![debug命令Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/2f6f5627-7ec5-455e-bd94-513d3cc680ba/2f6f5627-7ec5-455e-bd94-513d3cc680ba1.gif)
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长度
从从开始位置显示指定长度的内容
0L10
2)e 地址字节值表(修改内存单元内容的命令)
用值表中的值替换从“地址”开始的内存单元内容
两种基本格式:
1:
用命令给定的内容表去代替指定范围的内存单元的内容:
E<
address>
<
contentlist>
其中内容表为一系列用空格隔开的16进制字节或者是用引号括起来的字符串,例如:
2:
以上是替代,实则是修改内存单元的内容,因它不管原内存是什么,即用新值加以取代。
2。
选择。
用D显示地址和一个单元的的字节,然后等待用户键入。
E〈ADDRESS〉
输入以上命令后,将显示指定单元的地址和原有的内容,用户可以选择以下操作
:
输入一个或两个字符的16进制的数,去代替这个字节的内容,然后执行下面的任一操作。
PRESSENTER,displaynextaddressanditscontents,thenexcutetheoperationabove;
Pressspaceagainthenyoucancontinuedomodifyoperation.
3.pressapunctuationmark,returntoformeraddress,
d1af5:
e1af5:
0123456
f 范围字节值表
用值表中的值填充指定范围的内存单元内容,其中范围通常是1)中的后两种格式。
0100
f1af5:
0100l2012345
0f‘abcdef’
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作为始地址,后者以指定的始地址,这种选择适用于不同参数,去多次运行程序,以便对程序执行测试,
执行正在调试的设有断点的的程序,
G[=ADDRESS断点地址断点地址
从当前地点开始执行,到终点结束
●如未指定起始地址则从当前的cs:
ip指示的地址开始执行。
●如未指定断点地址,到终点结束。
g=100;
显示字符“abcd”
4)t [=地址][正整数](TRACECOMMAND)
跟踪执行。
从指定地址开始执行‘正整数’条指令,若缺省‘正整数’,表示执行一条指令,若两项都缺省,表示从当前CS:
IP指示地址开始执行一条指令。
5)P命令
p [=地址][正整数]
其使用方式与t命令相同,但不进入子程序调用或软中断
p=100
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:
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
三、形成可执行文件。
LINK
若有错,据错误提示,返回步骤1,修改错误。
若无错,则形成.EXE可执行文件。
四、运行程序
在命令窗口中键入可执行文件名,即可执行该程序。
五、调试程序
运行结果不对,需调试程序,查找原因。
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、汇编、连接、调试时产生的错误,其原因及解决办法。