汇编实验二用DEBUG程序调试程序功能段.docVIP

汇编实验二用DEBUG程序调试程序功能段.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE \* MERGEFORMAT 9 PAGE \* MERGEFORMAT 9实 验 报 告 ── 学年 第 学期实 验 课 程汇编语言学 生 姓 名123实 验 项 目DEBUG调试程序的使用学 院计算机科学技术实 验 性 质专业选修课班 级 学 号实 验 地 点同 组 人 数1第 组实 验 日 期第 周 星期 第 节成 绩5环 境 参 数DOSBox-0.74实验目的及要求实验原理、实验内容实验仪器设备及材料操作方法与实验步骤实验数据记录及处理实验结果分析及讨论一:继续学习使用DEBUG程序的各种命令。利用DEBUG学习了解计算机取指令、执行指令的工作过程。掌握8086/8088基本指令的使用方法和功能。二:实验任务1. 按照下列给定步骤完成求累加和程序: 程序: MOV BX,1000 MOV CX,10 MOV AL,0 LOP: ADD AL,[BX] INC BX J: LOOP LOP INT3 步骤: 用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。 用命令N AA将此程序命名为文件AA(文件名可任取)。 3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址) ,用R命令把BX设为:0000H,CX 设为文件长度。4)用命令W 100将此程序存到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的值是否符合你的预计值。 符合预期。用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样, 若不一样,检查程序是否有错。 10)重复G J与T,再检查AX是否正确。 (J为断点地址)没有问题。11)用G命令使程序运行到结束,检查AX值是否正确。用计算器检查,没有错误。2.用命令A汇编下列指令,判断指令正误并说明原因。LEA DI,[AX] 错误, 因为能够作为 HYPERLINK /s?wd=%E5%81%8F%E7%A7%BB%E5%9C%B0%E5%9D%80tncprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPhD4rywhP1T1mvfdm10v0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3En1m1P1TsP1b \t /question/_blank 偏移地址的寄存器只有BX,BP,SI,DI没有AX。 LEA DI,[BX] MOV DS,2010 错误,不能将立即数直接送入段寄存器。 Mov ax,2010 Mov ds,axPUSH AL 错误,应是16位的寄存器 Push axOUT 900,AL 错误,外设端口地址超过255时,应该用DX MOV DX,900 OUT DX,ALMOV [BX],0 错误,不能将立即数直接送入内存 X 正确为:没有指明字操作还是字节操作改为: mov word ptr[bx],0 3.利用T,P,G命令,执行下列指令段,注意它们的不同之处。MOV DI,300MOV SI,400MOV CX,3CLDREP MOVSBINT 3T:P:可以看到其直接结束,没有多次循环进入。G:若没有设置断点直接运行程序结束MOV AH,2MOV DL,41INT 21INT 3T:进入了21号中断P:没有进入21号中断G:可以看到直接执行完毕总结:T命令一步一步全部执行P命令不会进入子程序,适合主程序的调试。G命令适合查看一段命令的执行结果是否有误。4.程序: MOV DI,1000 MOV CX,8 MOV SI,2000 CLC LOP: MOV AL,[SI] ADC [DI],AL INC SI INC DI LOOP LOP INT 20 步骤: 用A命令键入此程序 用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。 3)用G命令运行此程序,并用D命令检查其结果(存放在哪里?),是否正确? 4)将INT 20H指令改为INT 3,有何区别?若这条指令不加,行不行?

文档评论(0)

js1180 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档