- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一
预备知识:debug的使用
什么是debug?
Debug是DOS、windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看cpu各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。
我们用到的debug的功能
用debug的r命令查看、改变cpu寄存器的内容
用debug的d命令查看内存中的内容
用debug的e命令改写内存中的内容
用debug的u命令将内存中的机器指令翻译成汇编指令
用debug的t命令执行一条机器指令
用debug的a命令以汇编指令的格式在内存中写入一条机器指令
Debug的命令比较多,共有20多个,但这6个命令是和汇编学习密切相关的。在以后的实验中,我们还会用到一个p命令。
进入debug
Debug是在dos方式下使用的程序。我们在进入debug前,应先进入到dos方式。用以下方式可以进入dos。
重新启动计算机,进入dos方式,此时进入的是实模式的dos
在windows中进入dos方式,此时进入的是虚拟8086模式的dos。例如:选择【开始】菜单中的【运行】命令,打开【运行】对话框,在文本框中输入“cmd”后,单击【确定】按钮。结果如下图所示:
进入dos后接着进入debug,敲入debug回车。结果如图所示:
用R命令查看、改变CPU各寄存器内容
如图上所示:观察出AX,BX,CX,DX,CS,IP这6个寄存器的内容。注意CS和IP的值,CS=0B5C,IP=0100,也就是说,内存0B5C:0100处的指令为CPU当前要读取、执行的指令。最后一行,DEBUG还列出了CS:IP所指向的内存单元处所存放的机器代码3426,并将它翻译为汇编指令XOR AL,26。
还可以用R命令来改变寄存器中的内容。如下图所示:
若要修改一个寄存器中的内容,比如AX的值,可用R命令后加寄存器名来进行,输入“r ax”后按回车键,将出现:“:”作为输入提示,在后面输入要写入的数据后按回车键,即完成了对AX中内容的修改。若想看一下修改后的结果,可再用R命令查看
用debug的D命令查看内存中的内容。
用debug的D命令,可以查看内存中的内容,D命令的格式较多,这里只介绍在本次实验中用到的格式。
如果我们想知道内存0B640H处的内容,可以用“d 段地址:偏移地址”的格式来查看,如下图所示
要查看内存0B640H出的内容,首先将这个地址表示为段地址:偏移地址的格式,可以是0B64:0000,然后用“d 0B64:0000”列出0B64:0000处的内容。
使用“d 段地址:偏移地址”的格式,debug将列出从指定内存单元开始的128个内存单元的内容。如上图所示,在使用d 0B64:0000后,debug列出了0B64:0000~0B64:007F中的内容。
使用D命令,debug将输出3部分内容(如上图)
中间是从指定地址开始的128个内存单元的内容,用十六进制的格式输出,每行的输出从16的整数倍的地址开始,最多输出16个单元的内容。从图中,我们可以知道,内存0B64:0000单元中的内容是00H,内存0B64:0001单元中的内容是0DH。内存0B64:0000 ~0B64:000F中的内容都在第一行,内存0B64:0010中的内容是3DH, 0B64:0011处的内容是41H,内存0B64:0010 ~0B64:001F中的内容都在第二行。注意每行中间都有一个“-”,它将每行的输出分成两部分,这样便于查看。
左边是每行的起始地址。
右边是每个内存单元中的数据对应的可现实的ASCII码字符。比如0B64:0011处的内容是41H,对应显示的字符就是“A”; 0B64:0010处的内容是3DH,对应显示的字符就是“=”,,内存0B64:0001单元中的内容是0DH.没有对应可显示的ASCII字符,DEBUG就用“.”来代替。
注意:我们看到的内存中的内容,在不同的计算机中都是不一样的,也可能每次用DEBUG看到的内容都不相同,因为我们用DEBUG看到的都是原来就在内存中的内容,这些内容受随时都有可能变化的系统环境的影响。当然,我们也可以改变内存、寄存器中的内容。
我们使用 d 0B64:0009查看0B64:0009处的内容,debug将怎么样输出呢?如下图所示
也可以指定D命令的查看范围,此时采用“d 段地址:起始偏移地址 结尾偏移地址”的格式
用debug的E命令改写内存中的内容。
可以使用E命令来改写内存中的内容,比如,要将内存0B64:0000~0B64:9单元中的内容分别些微0、1、2、3、4、5、6、7、8、9,可以使用“e 起始地址 数据 数据 数据……”的格式来进行,如下图所示:(下图先用D命令查看内存单元0B64:0000~0B64:f中内容,再用e命令修改内存0
您可能关注的文档
最近下载
- 2014年9月23日-24日辽宁沈阳要点.PDF VIP
- 中国心脏康复与二级预防指南2018精要.pdf VIP
- 青岛版小学数学三年级上册《平移和旋》教学设计6.doc VIP
- 硫磺制酸转化工段工艺的设计说明.doc VIP
- 无脚手架电梯安装施工详细方案.docx VIP
- DP-30电梯主板使用说明.pdf VIP
- 2025年地磅员面试题库及答案.doc VIP
- 第十一章 主观的诗与客观的诗——中西文学比较.ppt VIP
- 2025年新教材统编版秋季三年级道德与法治上册第三单元《在集体中长大》大单元整体教学设计(2022新课标).docx
- 兄弟 HL-1118 HL-1208 HL-1218W 黑白激光打印机中文维修手册.pdf VIP
文档评论(0)