预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

湖北科技学院计算机科学与技术学院 《微机接口技术》实验报告 学号:124221031姓名:李亮亮 实验题目:Debug程序的使用实验报告 指导老师:范建军 实验日期:2014.11.21 一、实验目的 学习使用DEBUG调试命令。 学习用DEBUG调试简单程序。 通过程序验证码制及其对标志位的影响。 通过调试熟悉和掌握个寄存器的作用与特点。 二、实验内容 用DEBUG调试简单程序。 三、实验仪器 微机一台 四、实验步骤 1.由DOS进入DEBUG调试环境。 C:>DEBUG将调试程序装入内存 注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG的状态提示符,表示可以接受调试子命令了。 -R显示CPU中各寄存器当前初始内容,请记录下列各项: AX=0000BX=0000CX=0000DX=0000BP=0000SI=0000DI=0000DS=073FES=073FSS=073FSP=00FDCS=073FIP=0100如图所示: FLAG寄存器中的8个标志位状态值是: OFDFIFSFZFAFPFCF00100000说明: 此时,调试工作区的四个段值相同,指向同一起点,表明公用一个64KB空间; SS:SP指向堆栈顶单元,SP为FFFE或FFEE,正好是本段的最高可用地址,表明堆栈自动使用最高地址,栈区由底向上生长; CS:IP为约定的调试工作区地点(IP=0100),可由此装入待调试程序代码,或汇编键入的程序小段,工作区由低址往下使用; DEBUG用符号给出标志寄存器中8个标志位的当前状态,其含义如下表所示。 标志位含义‘1’的对应符号‘0’的对应符号OF溢出OV有NV无DF方向DN递减UP递增IF中断EI允许DI禁止SF符号NG负PL正ZF全零ZR零NZ非零AF辅助进位AC有NA无PF奇偶性PE偶PO奇CF进位CY有NC无结束程序,返回DOS。 -Q 2.用DEBUG调试简单程序 例1-ACS:0106 MOVAX,1234 MOVBX,2345 MOVCX,0 ADDAX,BX MOVCX,AX INT20 运行程序 (注:执行程序时IP应指向要执行的指令,需要修改时 -RIP 当前值 输入需要值该处为0106 当然也可以在T或G命令中指出程序起始地址) -R显示各寄存器当前内容及首条指令 -T3跟踪执行三条赋值传送指令,记录寄存器及标志位变化 -T2跟踪执行相加及送和数指令,记录寄存器及标志位变化 -G执行软件中断指令INT20,机器将显示“程序正常终止”的信息,并显示“-”, 表明仍处在DEBUG的调试控制状态下,注意未用T命令,因为我们不想进入到20H中断处理程序中去,P命令也可实现相同操作 实验现象记录:记录每条指令执行后各相关寄存器值及标志位状态 例2-ACS:116 MOVAX,[0124] MOVBX,[0126] ADDAX,BX MOV[0128],AX INT20 DW2222 DW8888 DW0 设置断点分段运行程序 -G=CS:11611D从指定入口运行程序,至断点11D停,可见两个数已取至AX,BX,但还没有求和 -G122从上一断点运行至新断点停,已完成求和并存入指定结果单元 -G完成程序 观看内存内容 -DCS:11612A显示本程序小段目标代码和数据单元内容 -UCS:11612A反汇编指定范围的内存内容- 实验现象记录:通过反汇编,记录程序执行前指定范围的内存内容,并记录每条指令执行后各相关寄存器值及指定范围的内存内容 例3-ACS:0192 MOVDX,19B MOVAH,9 INT21 INT20 DB‘HELLO,WORLD!$’ -P命令单步执行(从P=CS:0192开始) 实验现象记录:观察每条指令执行后各寄存器的变化,记录DX,AX的变化。 思考:根据程序输入情况,考虑‘HELLO,WORLD!$’在内存中的ASCⅡ码和地址范围 如图所示 例4自己设计一段小程序验证补码的加法、进位、溢出的概念; 参考程序(可对数据进行修改): -ACS:0100 MOVAL,74 ADDAL,70 MOVAL,7A ADDAL,94 MOVAL,43 ADCAL,65 INT20 -P命令单步执行 实验现象记录:记录每条指令执行后AX及标志位变化 实验总结 通过这次实验,了解了一些汇编的命令,及在Windows环境下用debug来编写汇编程序,为之后的学习打下良好的基础。