实验一 DEBUG 的使用ftp文档格式.docx
- 文档编号:20855566
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:10
- 大小:316.96KB
实验一 DEBUG 的使用ftp文档格式.docx
《实验一 DEBUG 的使用ftp文档格式.docx》由会员分享,可在线阅读,更多相关《实验一 DEBUG 的使用ftp文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
(自定)
BDB15;
YDB3DUP(0)
ZDB0,0
DATENDS
STASEGMENTSTACK
DW50DUP(?
)
STAENDS
CODSEGMENT
ASSUMECS:
COD,DS:
DAT
STARPROCFAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DAT
MOVDS,AX
MOVAX,STA
MOVSS,AX
MOVAL,A
MOVZ,AL
MOVZ+1,AL
CALLSUB1
MOVAL,B
ADDWORDPTRY,AX
ADCBYTEPTR[Y+2],0
RET
STARENDP
SUB1PROC
MOVAL,Z
MOVAH,Z+1
MULAH
SUB1ENDP
CODENDS
ENDSTAR
程序流程图
2.通过编译,连接形成可执行文件.
(1)用D命令观察数据区在内存中的具体内容,记录单元A和B的具体地址.
A的地址是147B:
0000H
B的地址是147B:
0001H
(2)用U命令对目标代码反汇编,观察反汇编后的结果.注意发现源程序的起始位置,并记录这个起始地址
起始地址是:
1473:
(3)用T命令作单步跟踪调试.比较每条指令执行后的结果和原来的理解是否一致.得出程序运行的结果:
它们是写在什么单元,具体内容是什么;
并判断结果是否正确.
1.异或使得AX清零
2.Push之后ip自动加2
3.AX数值变化,将DAT的地址147B送入AX
4.将AX赋予DS,DS变为147B
5.同理可知道将STA的地址付给SS(此处省略详细分析)
6.调用时候如CALLSUB1,ip指向了003FH,并且SP自动减去4,既压入CS.IP
7.REF后,ip、cs弹出,sp加4
他们在写内存和段地址,结果是正确的
(4)在子程序SUB1的入口处设一断点,用G命令执行程序.在断点处观察堆栈的内容,比较堆栈的内容和程序返回地址是否一致.
IP=0017,SS=147C.
堆栈的内容和程序返回地址是一致的
(5)用E命令修改单元A,B的内容,重新执行程序,并记录结果.
(6)用M命令和A命令对程序进行修改:
将主程序中最后两条指令(ADD和ADC)修改为一条CALLSUB1指令,重新执行程序.[由于重新再次编译,所以地址有所变化]
(7)退出DEBUG.
重新使用编辑软件,把源程序最后一句中的STAR去掉.再次生成可执行文件,并用DEBUG调入内存.当使用U命令时,显示的结果与前一次(未加STAR)的结果有何不同?
答:
整个代码段仅有一条指令,ADD[BX+SI],AL。
由于把源程序最后一句中的STAR去掉,那么程序就不一定是从STAR开始,会造成程序混乱。
六预习题
1.熟悉常用的DEBUG命令。
u地址反汇编
dxx:
偏移地址xx:
csdssses查看内存单元的内容
t=开始地址[结束地址]跟踪执行
p跳过子程序单步运行
g=开始地址[断点地址]执行到断点处
g全速运行
r查看寄存器内容
rxxxx:
寄存器名称,修改寄存器内容
exx:
csdssses修改内存单元的内容
a偏移地址汇编,录入程序或可修改语句
2.阅读并分析程序的功能。
详情请看流程图
3.若SS=2000H,SP=FFFFH,向堆栈中压入4字节数据后,如何用D命令显示压入堆栈的内容?
D2000:
FFFCH。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验一 DEBUG 的使用ftp 实验 使用 ftp