- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实实验验三三::调调试试程程序序Debug的的使使⽤⽤
16~17春 《微机原理》课程实验报告
姓名:学号:成绩:
实验三:调试程序Debug的使⽤
⼀、简述 Debug的功能理解。
通过这次实验,我觉得Debug 于汇编语⾔程序的编写和调试是⾮常重要的,我们在将所需的程序编好后经过汇编和连接得到
的可执⾏程序往往并不能⼀运⾏就成功,⽽汇编和连接过程只能查出源程序的语法错误,并不能查出功能上的错误和不完善的
地⽅,因此调试过程必须逐段进⾏,有时甚⾄是逐条指令的执⾏,以观察是否达到预期结果,从⽽发现程序语句编排上的错
误。⽽Debug正是可以实现这⼀功能的系统软件,它为我们提供了⼀个监督和控制程序运⾏过程的环境和条件,这样我们就可
以发现程序中存在的问题,甚⾄直接修改⼀些⼩的问题。
⼆、按照实验指导书的“实验基本要求”以及“实验内容”的要求,描述相
关实验内容的完成情况。
1.DEBUG的基本操作:
(1)从WINDOWS进⼊DOS之后,输⼊命令启动DEBUG :
C :DEBUG 回车
(2)输⼊R命令,查看和记录CPU各个寄存器的内容:
-R回车
看到什么?
(3)输⼊A命令,汇编下⾯的字符“WINDOWS”显⽰程序 (DEBUG调试环境中,默认为⼗六进制,因此源程序中⼗六进制数
后⾯不写H):
-A 100 ;从偏移地址是0100H处开始写指令
OV AH,2
OV DL, 57 ;57H 是“W”的ASCII码
INT 21 ;INT 21是DOS 功能调⽤,AH=2代表2号功;能。这3句合起来的功
能是:显⽰DL中的字符
OV DL, 49
INT 21
OV DL, 4E
INT 21
OV DL, 44
OV DL, 4F
INT 21
OV DL, 57
INT 21
OV DL, 53
INT 21
INT 3 ;功能是产⽣⼀个断点,不要省略
(4)输⼊U命令反汇编上⾯的程序:
-U 100
问:这⾥100代表什么?
答:从偏移地址100处开始反汇编.
(5)输⼊G命令连续运⾏上⾯的程序,记录运⾏结果:
-G=100
(6)输⼊E命令把上⾯程序中的数据57,49,4E,44 ,4F,57,53依次分别改为57,45,4C ,43 ,4F,4D,45 :
-E 103 回车 (以下同)
-E 107
-E 10B
-E 10F
-E 113
-E 117
(7)输⼊D命令查看程序机器码的存放情况:
-D 100 11E ;看从100开始到11E的机器码
(8)输⼊G命令再连续运⾏程序,并记录运⾏结果:
-G=100
(9)依次输⼊下⾯的T命令 (单步执⾏)和G命令 (设置断点并启动运⾏),记录各
命令的运⾏结果:
-T=100 回车
-G=100 106 回车
-G=100 10A 回车
-G=100 10E 回车
-G=100 11E 回车
2.⼀字节⼗六进制数转换为ASCII码 (只考虑⼤写字母)
⽤E命令在DS :1000单元中存放⼗六进制数5A ,⽤A命令从CS :0100单元开始存放下⾯程序的机器码,并调试运⾏
(DEBUG调试环境中,源程序中⼗六进制数后⾯不写H):
CS : 0100 8D360010 LEA SI,[1000]
0104 8D3E2010 LEA DI,[1020]
0108 8A04 OV AL,[SI]
010A 240F OV BL,AL
010C 240F AND AL,0F
010E E80E00 CALL 011F
0111 80E30 AND BL,F0
0114 B90400 OV CX,4
0117 D2EB SHR BL,CL
0119 88D8 OV AL,BL
011B E80100 CALL 011F
011E F4 RET
011F 3C09 C P AL,09
0121 7602 JBE 0125
0123 0407 A DD AL,07
0125 0430 A DD AL,30
0127 8805 OV [DI],AL
0129 47 INC DI
012A C3 RET
运⾏结果:
1)写出执⾏上述程序的命令⾏G=100 。
2)程序执⾏后,[1020]=41,[1021]=35 。
3)思考:NOP 是空操作指令,若在A DD AL,07后⾯,加⼀条NOP,结果会如何?结果不变,但是占⽤了内存。
3、搜索字符串结束标志,统计搜索的字符个数
⽤E命令在DS:1000开始的单元中存放若⼲
文档评论(0)