退出Debug程序2学会Debug中的D命令、E命令、R命令、T命令、A命令、G命令、U命令等的使用。(3)使用Debug调试程序调试汇编程序。2、实验步骤1在DOS提示符下,进入Debug程序。2详细记录每一步所用的命令,以及查看结果的方法和具体结果。(3)现有一个双字加法源程序如下,其中存在错误。现假设已汇编、连结生成了可执行文件HBEXE,存放在DMASM目录下。请使用Debug对其进行调试。CodeSEGMENTASSUMECScodeDScodeORG100HStartMOVAXcodeMOVDSAXMOVSI200HMOVAXSIMOVDI204HADDAXDIMOVSI8AXMOVAXSI2ADDAXDI2MOVSI0AHAXMOVAX4C00HINT21HORG200H取第一个数的首地址将第一个数的低16位取到AX取第二个数的首地址第一个数和第二个数的低16应相加低16位相加的结果送到208H和209H单元取第一个数的高16位送到AX中两个数的高16位相加高16位相加的结果送到20AH,20BH单元使用DOS的4CH号功能调用进入功能调用,返回DOS从200H处开始存放下列数据从100H处开始存放下列指令将DS置成code段的首地址
DD12345678h654387A9h0h被加数、加数、和
fCodeENDSENDstart调试过程:①进入Debug并装入可执行文件HBEXEDMASMDebugHBEXE②观察寄存器初始状态RAX0000DS1892BX0000CX020CES1892SS18A2MOVDX0000SP0000BP0000SI0000DI0000CS18A2IP0100AX18A2NVUPEIPLNZNAPONC
18A20100B8A218
③以单步工作方式开始运行程序TAX18A2DS1892BX0000CX020CES1892SS18A2MOVDX0000SP0000BP0000SI0000DI0000CS18A2IP0103DSAXNVUPEIPLNZNAPONC
18A201038ED8TAX18A2DS18A2
BX0000CX020CES1892SS18A2MOV
DX0000SP0000BP0000SI0000DI0000CS18A2IP0105SI0200NVUPEIPLNZNAPONC
18A20105BE0002
④观察用户程序数据段初始内容D20020F18A2020078563412A98743650000000000741350⑤连续工作方式运行程序至返回DOS前(设断点),查看运行结果。为此,现使用U命令反汇编。U10018A20100B8A21818A201038ED818A20105BE000218A201088B0418A2010ABF040218A2010D030518A2010F894408MOVMOVMOVMOVMOVADDMOVAX18A2DSAXSI0200AXSIDI0204AXDISI08AXxV4CetP
f18A201128B440218A2011503450218A2011889440A18A2011BB8004C18A2011ECD21
MOVADDMOVMOVINT
AXSI02AXDI02SI0AAXAX4C0021
可见,要执行10条指令,至011B处停止G100011BAX7777BX0000CX020CDS18A2ES1892SS18A218A2011BB8004CD20020F18A2020078563412A987436521DE777743438306和为7777DE21H,正确。⑥再取一组数据,查看运行结果。为此,首先用E命令修改数据。E200CDAB785690EF3412E
terD20020F18A20200CDAB785690EF34122r