1、汇编实验二用DEBUG程序调试程序功能段汇编实验二用DEBUG程序调试程序功能段实 验 报 告 学年 第 学期实 验 课 程汇编语言学 生 姓 名123实 验 项 目DEBUG调试程序的使用学 院计算机科学技术实 验 性 质专业选修课班 级 学 号实 验 地 点同 组 人 数1第 组实 验 日 期第 周 星期 第 节成 绩5环 境 参 数DOSBox-0.741、实验目的及要求2、实验原理、实验内容3、实验仪器设备及材料4、操作方法与实验步骤5、实验数据记录及处理6、实验结果分析及讨论一:1 继续学习使用DEBUG程序的各种命令。2 利用DEBUG学习了解计算机取指令、执行指令的工作过程。3
2、掌握8086/8088基本指令的使用方法和功能。二:实验任务1 按照下列给定步骤完成求累加和程序: 程序: MOV BX,1000 MOV CX,10 MOV AL,0 LOP: ADD AL,BX INC BX J: LOOP LOP INT3 步骤: 1) 用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。 2) 用命令N AA将此程序命名为文件AA(文件名可任取)。 3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址) ,用R命令把BX设为:0000H,CX 设为文件长度。4)用命令W 1
3、00将此程序存到AA命名的磁盘文件中。 5)用命令Q退出DEBUG。 6)用命令DEBUG AA再次调入DEBUG和文件AA,可用U命令检查调入程序。 若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入。 7)用E命令在内存地址1000H处键入16个数字 8)用命令G=100 J(J用实际地址代替),使程序运行并停在断点J上,检查 AX,BX的值是否符合你的预计值。 符合预期。9) 用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样, 若不一样,检查程序是否有错。 10)重复G J与T,再检查AX是否正确。 (J为断点地址)没有问题。11)用G命令使程序运行到结束
4、,检查AX值是否正确。用计算器检查,没有错误。2用命令A汇编下列指令,判断指令正误并说明原因。(1) LEA DI,AX 错误, 因为能够作为偏移地址的寄存器只有BX,BP,SI,DI没有AX。 LEA DI,BX (2) MOV DS,2010 错误,不能将立即数直接送入段寄存器。 Mov ax,2010 Mov ds,ax(3) PUSH AL 错误,应是16位的寄存器 Push ax(4) OUT 900,AL 错误,外设端口地址超过255时,应该用DX MOV DX,900 OUT DX,AL(5) MOV BX,0 错误,不能将立即数直接送入内存 X 正确为:没有指明字操作还是字节操
5、作改为: mov word ptrbx,0 3利用T,P,G命令,执行下列指令段,注意它们的不同之处。(6) MOV DI,300MOV SI,400MOV CX,3CLDREP MOVSBINT 3T:P:可以看到其直接结束,没有多次循环进入。G:若没有设置断点直接运行程序结束(7) MOV AH,2MOV DL,41INT 21INT 3T:进入了21号中断P:没有进入21号中断G:可以看到直接执行完毕总结:T命令一步一步全部执行P命令不会进入子程序,适合主程序的调试。G命令适合查看一段命令的执行结果是否有误。4程序: MOV DI,1000 MOV CX,8 MOV SI,2000 CL
6、C LOP: MOV AL,SI ADC DI,AL INC SI INC DI LOOP LOP INT 20 步骤: 1) 用A命令键入此程序 2) 用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。 3)用G命令运行此程序,并用D命令检查其结果(存放在哪里?),是否正确? 4)将INT 20H指令改为INT 3,有何区别?若这条指令不加,行不行?试试。 改为INT 3命令程序会停止到此处,若不加,会超出此程序的执行范围,直到遇到中断或者死机。5)请说明这个程序完成的功能是什么?完成两个8字节的数相加。三:问题思考1.假设某内存单元的内
7、容为CCH,试问该内容如看作一条指令、看作无符号数、看作带符号数,那将分别表示什么?不查看教材中的指令系统代码,如何在DEBUG下知道CCH表示一条什么指令?CC 指令: INT3调试断点;无符号数:204带符号数:-522 在指令MOVBX,AX中,操作数BX的寻址方式是什么?在DEBUG下执行完该指令后,如何查看执行结果? 寄存器间接寻址方式。用d查看。3 可否随意在DEBUG提示符“”后不带参数发出命令G?什么情况下使用命令G时,可不用“=”给出执行的首地址?不可以,代码段和指令寄存器指向所要执行代码的地址。4 分析出现死机的几种情况。如何理解死机现象?试从计算机的工作原理进行解释从硬件上主要是cpu,内存,硬盘不能正常工作,从软件上说主要是死循环和驱动问题。例如cpu进入了死循环,不能中断退出到原来的管理进程。四、小结了解了更多的debug命令,会进行dos下的文件读写了。仪器设备损坏、非正常损耗材料(试剂)及处理情况:无教师对报告的最终评价及处理意见:较好地完成了实验任务。教 师 签 字: 年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1