- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机组成与结构 项目指南 2015年春季学期
计算机组成与结构项目指南
汇编指令到机器代码的转换程序(汇编器)
项目目标
掌握汇编器的设计方法;
为项目四CPU设计提供测试工具。
项目条件
Linux操作系统;
Linux操作系统程序开发工具GCC,GDB。
项目准备
安装Linux操作系统;
如果发现Linux默认安装没有带GCC、GDB等编译开发工具,那么要下载安装编译开发工具;
回顾教材A.1,A.2节中关于汇编器的内容;
利用图书馆或互联网资源,了解GCC命令(例如:/man/1/gcc);
利用图书馆或互联网资源,了解GDB工具(例如:/developerworks/cn/linux/sdk/gdb/index.html)。
项目内容
假设有一个简单的CPU,它能访问64KB的存储器(CPU有16位地址输出,8位数据输入和输出),内部有3个程序员可见的寄存器AC, R和Z :
程序员不可见的寄存器如下:
当简单CPU启动时,所有寄存器都会被自动清零。简单CPU的指令集如下表所示:
指令集表中 Γ 表示一个16位二进制地址(采用小端序保存)。因此LDAC, STAC, JUMP, JMPZ, JPNZ这5条指令都是3字节指令,其余指令为单字节指令。
请编写一个C程序,输入为该简单CPU的汇编指令序列(以文本文件形式提供),输出为该CPU的机器指令代码(以二进制文件形式保存);
用该简单CPU指令集中的指令编写一个汇编指令序列“sum10”,完成计算从1加到10的任务,并把结果保存到内存某个存储单元。以下为一段从1加到n的参考代码:
可以根据以上代码的思路来完成sum10的编写(提示:可以把需要的常数10当作机器代码的一部分,也保存在二进制文件中——可能需要增加数据伪指令。当机器代码装载到内存中时,该常数也被装入到某个内存单元,从而可以被LDAC指令按照地址读出);
用所编写的汇编器将汇编指令序列“sum10”翻译成二进制机器代码,并保存为一个二进制文件,为项目二提供测试例子。
思考问题
汇编器的基本功能是什么,基本设计方法是什么;
符号表是什么,地址计数器是什么,单趟汇编和多趟汇编有何区别;
实际的汇编语言通常支持标号(label),这有什么好处,应该怎么处理;
实际的汇编语言通常提供一些伪指令,其中包括定义数据的伪指令,它们的作用是什么;
本项目中,汇编器怎样设计,才能支持sum10的编写和翻译为二进制机器指令代码。
报告要求
项目报告需要有姓名,学号,班级,项目名称,项目目标,项目条件,项目内容,需求分析,设计方案,测试记录,项目总结等项目;
需求分析要描述汇编器实现的具体功能和要求,可接收输入的详细信息,可能产生的输出的详细信息;
设计方案有:(1)完成需求分析所提出的功能和要求解决的问题;(2)对所列问题的解决思路;(2)程序流程图;(3)程序各模块说明;
测试记录需要有如下信息:(1)项目机器CPU配置,内存配置,操作系统名称和版本号,内核版本号,GCC版本号,GDB版本号;(2)程序源代码,GCC编译命令文本;(3)测试输入例子说明和源代码;(4)输出结果记录和说明;
项目总结要根据项目目标,项目内容,需求分析,设计方案,测试记录,评估项目达到的效果;
设计方案和项目总结中要体现出对思考问题的回答,但不要逐条回答,而是融入到设计方案和项目总结本身的叙述中。
机器代码到汇编指令的转换程序(反汇编器)
项目目标
掌握反汇编器的设计方法;
为项目一的汇编器设计提供验证工具。
项目条件
Linux操作系统;
Linux操作系统程序开发工具GCC,GDB;
项目准备
安装Linux操作系统;
如果发现Linux默认安装没有带GCC、GDB等编译开发工具,那么要下载安装编译开发工具;
回顾教材A.1,A.2节中关于汇编器的内容;
利用图书馆或互联网资源,了解GCC命令(例如:/man/1/gcc);
利用图书馆或互联网资源,了解GDB工具(例如:/developerworks/cn/linux/sdk/gdb/index.html)。
项目内容
假设有一个简单的CPU,它能访问64KB的存储器(CPU有16位地址输出,8位数据输入和输出),内部有3个程序员可见的寄存器AC, R和Z :
程序员不可见的寄存器如下:
当简单CPU启动时,所有寄存器都会被自动清零。简单CPU的指令集如下表所示:
指令集表中 Γ 表示一个16位二进制地址(采用小端序保存)。因此LDAC, STAC, JUMP, JMPZ, JPNZ这5条指令都是3字节指令,其余指令为单字节指令。
请编写一个C程序,输入为项目一中汇编器所生成的二进制机器代码文件,输出为该简单CPU的汇编指令序列(以文本文件形式保存)。请使用项目一中的sum10程序作为测试例子;
比较本项目反汇编器对sum10程序机器
您可能关注的文档
- 英威腾变频器(供水专用)说明书.pdf
- 英语翻译方法和技巧归纳——阿拉丁神灯翻译节选.pptx
- 安徽出版集团有限责任公司2018年度第一期短期融资券法律意见书.pdf
- 福建三安集团有限公司2018年度第二期超短期融资券法律意见书.pdf
- 康美药业股份有限公司2018年度第一期中期票据法律意见书.pdf
- 表面化学讲解.ppt
- 计算机结业作业.doc.doc
- 认识电路-小台灯(t高).ppt
- 记叙、说明解题技巧课件1.16.ppt
- 设计说明污水处理厂.doc
- 必威体育精装版2022人教部编版语文五年级下册全册优质教案教学设计(含教学计划).doc
- 部编人教版小学语文六年级上册:【全册】1-8单元、期中、期末试卷文档精品(最全).doc
- 部编语文六年级上册:【全册】1-8单元、期中、期末试卷(最全).doc
- 必威体育精装版北师大版七年级下册数学全册学案.doc
- 部编语文五年级下册:期末期中总复习知识点归纳知识小结1(最全).doc
- 必威体育精装版2021-2022部编人教版一年级语文上册全册教案教学设计.doc
- 必威体育精装版人教版九年级英语上册单元测试题全册带答案.doc
- 2020年中考数学第一次模拟考试及解析(带答题卡)共3套(最全).doc
- 部编版九年级上册历史期末测试卷(带解析)共5套.doc
- 旧衣服回收创业计划书(最全).doc
文档评论(0)