网站大量收购独家精品文档,联系QQ:2885784924

计算机组成与结构 项目指南 2015年春季学期.docVIP

计算机组成与结构 项目指南 2015年春季学期.doc

  1. 1、本文档共24页,可阅读全部内容。
  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文档。上传文档
查看更多
计算机组成与结构 项目指南 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程序机器

文档评论(0)

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

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

1亿VIP精品文档

相关文档