《汇编语言》研究试验报告.docVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《汇编语言》研究试验报告.doc

研究实验一 搭建一个精简的C语言开发平台 研究目的 通过搭建C语言开发平台,认识到汇编语言对于深入理解其他领域知识的重要性。 对前面所学习的汇编知识进行融合贯通。 对用研究的方法进行学习进行体验 培养自己独立研究问题的能力。 研究原理 我们要搭建一个精简的C语言开发平台,必须要对C语言开发环境有一个清晰的认识了解。TC2.0软件里有很多子文件和文件夹,而我们的目的是搭建一个精简的C语言开发平台,顾名思义就是要找出我们编译连接程序必须的文件,其他的文件就可以不要。我们可以在程序编译连接中,根据出现的错误,一步一步去把我们程序必须的文件夹找出来。 研究步骤和过程 安装TC2.0在D盘根目录下,文件名为“TC2.0”。 在C盘根目录下建立一个文件夹“minic”用来存放我们已知解决问题要有的程序和文件。在DOC环境下,输入下面的指令:c:\md minic 把TC.EXE文件拷贝到minc文件夹里,具体操作如下:在DOC中,minic目录下输入如下指令: Copy d:\tc2.0\tc.exe 打开TC2.0输入程序,保存,其文件为“WO.C” 同时设置TC2.0的工作路径,如下图 设置后,保存好。 进行编译: 编译成功显示: 生成文件WO.OBJ 连接: 出现错误,显示连接错误:不能打开C0S.OBJ文件 查找C0S.OBJ文件,复制到文件夹minic 按照步骤6和7的方法,连续找出缺失的必须文件,拷贝到minic文件夹,直到成功生成WO.EXE文件,完成后minic文件夹里有如下图的文件: 遇到的问题与总结 在把TC2.0中的内容拷贝到minic文件时,自己指令输错了,后来通过多次试验终于成功了,至此发现自己对DOC的很多指令很不熟悉,今后还的加强在这方面的学习。 在找C0S.OBJ时把其中的“0”看成是字母‘o’,导致一直找不到文件,疑惑了不久,后来去查找TC2.0文件夹,才发现其中的是数字0不是字母o. 通过这个问题感觉自己还不细心,做程序最重要就是要非常细心,不能出一点擦错。 3. WO.EXE文件生成了,自己去验证了下,发现在程序开始加一个“#include”就识别不了了。这个精简的C语言开发平台局限性很大。 4.自己研究了一下,tc里的路径设置,tc保存路径需要生成TCCONFIG.TC文件和TCPICK.TCP文件,这两个文件默认放在C旁的根目录下。 研究实验二 使用寄存器 研究目的 对前面所学习的汇编知识进行融合贯通。 对用研究的方法进行学习进行体验 培养自己独立研究问题的能力。 研究步骤和思考 编写一个程序yan2.c 编译连接yan2.c,生成了yan2.exe文件,保存在minic中。 用Debug加载yan2,exe之后,用u命令查看其机器码和汇编代码。 自己想了下没找到对应的机器码。 找main函数在代码段中的偏移地址。 在tc中输入,然后编译连接; 在DOS运行他wo.exe,得到main的偏移地址是1fah 自己在别的程序中也打印了main的偏移地址,发现也是1fah。由此我得出一个结论:main的偏移地址是固定的。 对于为什么能打印main的偏移地址,我认为main就相当于一个标号,但这个标号在一定条件下是固定的,不能更改,我试了用别的字母代替main,编译出错。 用debug查看1fah处得指令 和C程序一一对应 验证:C语言将函数实现为汇编语言中的子程序 编写ur2.c,用DEBUG跟踪。 Call 020b相当于调用f(void) 子程序返回,返回值放在了AX中为3。 证明了 我们的设想是对的。 遇到的问题与总结。 第一次编写yan2.c时,我以为寄存器大小写一样可以,就把_AX写成了_ax发现编译错误了,证明了我的假设是错误的。 在用U查看yan2.exe的代码时,为什么代码不是从main的偏移地址开始的,而开始的那端代码是有什么作用类?,这里有个疑问,有待研究下面的试验。 研究实验三 使用内存空间 研究目的

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档