计算机组成和设计课内实验指导.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  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文档。上传文档
查看更多
《计算机组成与设计》课内实验指导 实验一 可执行程序的生成(第1 章) 一、实验目的: 通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。 二、实验要求: 对教材1.4.5 节给出的hello.c 源程序进行编译、链接,最终生成可执行目标代码。 三、实验步骤: 1.在Windos环境下用任意一个编辑器编写hello.c程序,拷贝到E:\OpenMIPS目录下。 2.将Windos环境下E:\OpenMIPS\hello.c源程序拷贝到虚拟机/home/目录下。 (1)打开VisualBoxVisualBox主界面 (2)双击OpenRISC_Ubuntu图标,启动虚拟机,界面如图2所示。 (3)打开命令终端,如图3所示,在命令行输入 sudo mount –t vboxsf OpenMIPS /mnt/回车,输入openrisc密码,然后打开虚拟机左上角文件夹,按照目录层次打开 /mnt/文件夹,将/mnt下的hello.c源程序拷贝到当前(/home/)目录下。 图2 虚拟机桌面 图3 命令终端 3.在虚拟机环境下将hello.c编译为MIPS汇编程序。 (1)在命令行输入 mips,在连按两次Tab键,看到如图4所示的mips编译工具列表。 图4 MIPS编译工具 (2)如查看mips-sde-elf-gcc命令使用说明,只要在命令行输入mips-sde-elf-gcc --help。 (3)编译hello.c源程序为汇编代码:在命令行输入mips-sde-elf-gcc –S hello.c回车即可,在当前目录下就生成hello.s汇编程序。 4.将汇编程序汇编为二进制机器代码:在命令行输入mips-sde-elf-as –mips32 hello.s -o hello.o回车即可,在当前目录下就生成hello.o目标代码。 5.进行链接成可执行目标文件。将(/opt/mips-4.3/mips-sde-elf/lib)安装目录下的malta-24kc-ram-hosted.ld文件拷贝到当前(/home/)目录下,在命令行输入mips-sde-elf-ld –T malta-24kc-ram-hosted.ld hello.o –o hello.om,此命令如有问题,用gcc直接编译、汇编、链接成可执行文件,即在命令行输入mips-sde-elf-gcc –T malta-24kc-ram-hosted.ld hello.c –o hello.om即可。 6.在命令行输入mips-sde-elf-run hello.om即可看到运行结果。 7.在虚拟机环境下查看编译、汇编、链接后的结果。例如在命令行输入cat hello.s即可看到编译结果。 8.同时在命令行输入mips-sde-elf-objdump –S hello.om即可看到反汇编代码段和数据段。 四、实验报告: 1. 说明你做实验的过程(重要步骤用屏幕截图表示)。 2. 给出源程序(文本文件)的内容(用十六进制形式表示)。 3. 给出可执行目标文件(二进制文件)的内容(用十六进制形式表示)。 4. 分析或回答下列问题。 (1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。 (2)你能在可执行目标文件中找出函数printf ()对应的机器代码段吗?能的话,请标示出来。 (3)为什么源程序文件的内容和可执行目标文件的内容完全不同? 实验二 数据表示和运算(第2、3章) 一、实验目的: 1.通过无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示。 2.了解IEEE 754 浮点数在机器中的应用,特别是一些特殊值的处理。 3.了解数据在机器中的存放方式。 4.了解高级语言中数据类型的转换和移位操作结果,从而能更好地理解指令系统设计和计算机硬件设计所需满足的要求和需要考虑的问题。 5.通过检查高级语言中数据运算的不同结果,进一步理解机器代码在CPU 中的执行过程,从而为更好地学习指令系统设计和CPU 设计打下良好的基础。 二、实验要求: 1.验证教材表2.2 中的关系表达式的结果,并编程得出第二章习题8 的表中结果。 2.通过编程得出float 和double 类型的精度(即十进制有效位的位数)。 3.编程检查“-8.0/0”、“sqrt(-4.0)”的运算结果。 4.检查你的机器是大端方式还是小端方式,检查内存变量(如结构或数组)是否按边界对齐。 5.编程实现以下各种操作,分别用十进制和十六进制形式打印输出各种操作的结果: (1) 给定一个short 型数据 -12345,分别转换为int、unsigned short、unsigned int、floa

文档评论(0)

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

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

1亿VIP精品文档

相关文档