熟悉debug调试环境实验

熟悉debug调试环境实验

ID:1245916

大小:157.78 KB

页数:7页

时间:2017-11-09

熟悉debug调试环境实验_第1页
熟悉debug调试环境实验_第2页
熟悉debug调试环境实验_第3页
熟悉debug调试环境实验_第4页
熟悉debug调试环境实验_第5页
资源描述:

《熟悉debug调试环境实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一、Debug调试姓名:孙杨威学号:12281201班级:计科1202班任课教师:李济生一、实验目的1.进一步学习汇编语言基本指令使用方法;2.学习DEBUG调试工具的基本使用方法;掌握debug调试命令a、u、r、d、t、g3.等逐条观察程序指令的执行过程,理解指令的功能,理解程序自动、顺序地执行的概念,实践其过程(重点)。二、实验题目1.编写、输入一个32位二进制数相加程序,逐条执行指令,观察指令执行情况。2.使用已经过汇编和连接的小程序(t3-2.exe),将其装入内存,逐条执行指令,观察执行过程和结果

2、。在实验过程中,使用D命令修改XXX和YYY单元中的数据,再重新计算其结果。三、实验过程1.启动计算机的WINDOWS操作系统,在开始菜单中找到“运行”,输入“cmd”后回车,启动ms-doscommand程序,再在该程序内输入“DEBUG”并按回车,即启动DEBUG调试程序。2.开始编程可以看到,对32位数的低16位操作时,存放地址是073F:0100,指令长度为3,即在寄存器类型的指令上增加1,在进行ADC加法指令时,考虑到了进位CF,所以指令长度为4。 使用r命令后,可以看到指令执行前各寄存器的内容,CS:

3、IP的内容为0100,执行的指令为MOV AX,F271,操作数寻址为立即数寻址,内存单元的值为0F271。使用t命令单步执行指令后,所得结果如图执行过程中,CS:IP的内容随指令长度的变化依次增加,标志位寄存器只有AF,PF,CF的值在计算过程中有变化,最后AF=AC,说明低4位向高4位有进位,而CF=CY,说明最高位有进位,OF=NV,表明计算结果没有溢出。对程序使用r命令查看寄存器AX,DX的值,如下图可知,AX=4909,DX=07D6,CF=1,说明运算结果低16位为4909,高16位为07D6,还有一

4、位进位1,即结果是107D64909,计算正确。2.打开t3-2.exe,并使用-u命令反汇编的将结果如下图:执行指令结果如下图:使用d命令查看程序运行过后的结果如下图,可以看到,内存单元的存放顺序是低地址放低字节,高地址放高字节,同时数据的存放是按顺序连续存放的,指令的存放与数据是同时的,都存放在连续的内存地址中,使用e命令对内存单元的内容进行修改,再次运行程序,可见结果也有了相应的改变。图表1四.实验体会通过本次实验我学会了如何在64位系统中使用debug,并初步了解了debug的功能和作用,以及相关工具的运

5、用。Debug基本指令a、u、r、d、t、g、e的用法使我收益匪浅。第一个实验是编写一个32位二进制数的加法,因为初步认识debug,不太熟悉,请教了同学才知道,的确费了很多力,有了一点经验,第二个实验做起来才得心应手了许多,这让我认识到万事开头难,只要不怕困难,最后一定能解决。思考题:1.程序中的指令、数据是如何在存储器中存储的?答:程序中的数据和指令都是按顺序分别在不同的段内存地址中存放的,低地址放低字节,高地址放高字节。2.如何理解程序执行过程的顺序性?答:之所以说程序是按顺序执行的,是因为在程序执行时,指

6、向代码段的内存偏移地址寄存器IP按照指令长度,从小到大,自动顺序跳跃。3.如何理解标志位寄存器中的数据?答:标志位寄存器中的数是用来指示当前指令执行之前各部分的状态,如从OF可以知道上次执行计算时有没有产生溢出,从ZF可以判断上条指令执行后是不是结果为0,同时,有的标志位寄存器还参与运算,如CF,AF,在算数运算中,标志位寄存器中的值是运算结果的一部分。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。