计算机组成与设计课内试验指导_第1页
计算机组成与设计课内试验指导_第2页
计算机组成与设计课内试验指导_第3页
计算机组成与设计课内试验指导_第4页
计算机组成与设计课内试验指导_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成与设计课内实验指导实验一 可执行程序的生成(第1章)一、实验目的:通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解 高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。二、实验要求:对教材1.4.5节给出的 源程序进行编译、链接,最终生成可执行目标代码。三、实验步骤:1 .在Windos环境下用任意一个编辑器编写程序,拷贝到E:OpenMIPS目录下。2 .将Windos环境下源程序拷贝到虚拟机/home/目录下。(1)打开VisualBox,界面如图1所示。图1 VisualBox主界面(2)双击OpenRISC_Ubuntu图标,启动虚拟机,界

2、面如图 2所示。(3)打开命令终端,如图 3所示,在命令行输入 sudo mount十vboxsf OpenMIPS /mnt/回车,输入openrisc密码,然后打开虚拟机左上角文件夹,按照目录层次打开/mnt/文件夹,将/mnt下的源程序拷贝到当前(/home/)目录下。E3 t. 1.2? AM i iJQefmC jib, 中OpenC身GH UIWrtutlSoi|H1*KftumingJW" Lirttci OpcnftSCFPGA_hoard M fpqa Oewkspncn!:Link to rrpME匕如 nm<i<aMnEFProvid

3、ed by:八广_*A,r FR .日K图2虚拟机桌面cpertrisc D&p« nrisc-VirtualBQX;:p* r» r i = e S-op-d nrizz-Virt us 13c k : $ ,图3命令终端3 .在虚拟机环境下将编译为 MIPS汇编程序。(1)在命令彳T输入 mips,在连按两次Tab键,看到如图4所示的mips编译工具列图4 MIPS编译工具(2)如查看 mips-sde-elf-gcc命令使用说明,只要在命令行输入mips-sde-elf-gcc-help。(3)编译源程序为汇编代码:在命令行输入 mips-sde-elf-gc

4、c 6回车即可,在当前 目录下就生成汇编程序04 .将汇编程序汇编为二进制机器代码:在命令行输入mips-sde-elf-as -mips32 -o回车即可,在当前目录下就生成目标代码。5 .进行链接成可执行目标文件。将(/opt/mips-sde-elf/lib )安装目录下的文件拷贝到 当前(/home/)目录下,在命令行输入 mips-sde-elf-ld -T-o ,此命令如有问题,用gcc直接编译、汇编、链接成可执行文件,即在命令行输入mips-sde-elf-gcc T-o即可。6 .在命令行输入mips-sde-elf-run即可看到运行结果。7 .在虚拟机环境下查看编译、汇编、

5、链接后的结果。例如在命令行输入cat即可看到编译结果。8 .同时在命令行输入mips-sde-elf-objdump 6即可看到反汇编代码段和数据段。 四、实验报告:1 .说明你做实验的过程(重要步骤用屏幕截图表示)。2 .给出源程序(文本文件)的内容(用十六进制形式表示)。3 .给出可执行目标文件(二进制文件)的内容(用十六进制形式表示)。4 .分析或回答下列问题。(1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。(2)你能在可执行目标文件中找出函数printf ()对应的机器代码段吗能的话,请标示出来。(3)为什么源程序文件的内容和可执行目标文件的内容完全不同实验二 数据表示

6、和运算(第2、3章)一、实验目的:1 .通过无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示。2 .了解IEEE 754浮点数在机器中的应用,特别是一些特殊值的处理。3 .了解数据在机器中的存放方式。4 .了解高级语言中数据类型的转换和移位操作结果,从而能更好地理解指令系统设计和计算机硬件设计所需满足的要求和需要考虑的问题。5 .通过检查高级语言中数据运算的不同结果,进一步理解机器代码在 CPU中的执行过程,从而为更好地学习指令系统设计和 CPU设计打下良好的基础。二、实验要求:1 .验证教材表中的关系表达式的结果,并编程得出第二章习题8的表中结果。2 .通过编程得出float

7、和double类型的精度(即十进制有效位的位数)。3 .编程检查“ 0”、"sqrt () ”的运算结果。4 .检查你的机器是大端方式还是小端方式,检查内存变量(如结构或数组)是否按边界对齐。5 .编程实现以下各种操作,分别用十进制和十六进制形式打印输出各种操作的结果:(1)给定一个 short 型数据-12345,分别转换为 int> unsigned short、unsigned int、 float类型的数据;(2)给定一个 int 型数据 47,分别转换为 short、unsigned short、unsigned int、float 类型的数据;(3)给定一个floa

8、t型数据,转换成double型数据;(4)给定一个double型数据,转换成float型数据;(5)按short和unsigned short类型分别对-12345进行左移2位和右移2位操作。6.编程计算下列表达式的值,分别用十进制和十六进制形式显示各种操作的结果:(1) unsigned int 型数据:1+95=;=(2) int 型数据:47+1=; -2=(3) float 型数据:+ + =;+ + (- ) =三、实验步骤:1 .编写相关运算的C源代码。2 .打开命令终端,在命令行输入sudo mount弋vboxsf OpenMIPS /mnt/回车,输入openrisc密码,然

9、后打开虚拟机左上角文件夹,按照目录层次打开/mnt/文件夹,将/mnt下的C源程序拷贝到当前(/home/)目录下。3 .在命令行输入 mips-sde-elf-gcc -T *.c -o *.om生成可执行文件。4 .在命令行输入mips-sde-elf-run *.om检查相关程序运行结果。5 .按照实验一中相应操作,对 C源程序进行编译、汇编、链接以及可执行代码的 反汇编,分析相关数据在计算机内部的表示和运算过程。四、实验报告:1 .说明你做实验的过程(重要步骤用屏幕截图表示)2 .分析或回答下列问题。(1)在虚拟机上,-1用int类型和unsiged int类型表示的结果分别是多少(2

10、) float类型和double类型的精度各是多少(3)无符号数和带符号整数的扩展操作方式是否相同各是如何进行的(4)补码整数(如int型数)是否总能转换为等值的float类型数据为什么(5) float型数据是否总能转换成等值的 double型数据为什么(6)长数被截断成短数后可能发生什么现象为什么(7)将某一源程序生成的可执行文件反汇编,分析反汇编代码并和编译生成的汇 编代码进行比较。实验三cache和程序访问的局部性(第 4章)一、实验目的:1 .通过实际程序的执行,理解“存储程序”工作方式的自动执行过程。2 .通过检查实际程序的存储空间,了解数据的存储和排列顺序。3 .通过实际程序的执

11、行结果,了解程序访问的局部性对带有cache的计算机系统性能的影响。二、实验要求:1 .将helloworld程序编译为汇编程序在 QtSpim模拟器上运行。2 .编写以下程序,修改或添加必要的语句(如计时函数等),以计算和打印主体 程序段的执行时间。分别以 M=100000, N=10、M=1000, N=100R M=10, N=100000, 执行程序A和程序B,以比较两个程序执行时间的长短。程序段A:a_r (int M,int N)一int i, j, aMN;for (i= 0; i<M; i+)for (j= 0; j<N; j+) aij=i+j;程序段B:a_c

12、(int M,int N )int i, j, aMN;for (j= 0; j<N; j+)for (i=0; i<M; i+) aij=i+j;三、实验步骤:1 .将hello汇编程序,在QtSpim模拟环境下运行,检查机器是大端方式还是小端方 式以及内存变量(如结构或数组)是否按边界对齐。2 .将程序程序段A和B在实验一的基础上编译为汇编语言。3 .按照附录A MIPSsim的指令列表、附录C MIPSsim的汇编语言文档要求修 改汇编程序,适合MIPSsim模拟环境。4 .按照MIPSsim使用说明在MIPSsim模拟环境下单步运行并检查内存空间。四、实验报告:1 .说明你

13、做实验的过程(重要步骤用屏幕截图表示)和执行结果。2 .对实验结果进行分析,说明局部数据块大小、数组访问顺序等和执行时间之间的 关系。五、附录:模拟器安装对于SPIM,可以将QtSpim_9.1.7_Windows解压到某一目录下,然后单击或者文件, 默认设置直接安装。模拟器安装对于MIPSsim,需要安装Microsoft .NET Framework组件(),然后直接运行即可。实验四 程序的机器级表示及其过程调用(第 5章)一、实验目的:1 .理解MIPS通用寄存器的使用。2 .学会使用MIPS汇编语言编写简单的程序。3 .理解高级语言过程调用的机器代码表示及其执行过程。二、实验要求:对教

14、材例高级语言通过手工转换或交叉编译器编译为MIPS汇编程序,然后在QtSpim模拟器上单步运行,分析堆栈使用情况和过程调用执行过程。三、实验步骤:1 .在Windos环境下用任意一个编辑器将例子中的 C语言程序补充完整。2 .结合书中给出的子函数汇编,将 C语言程序手工转换为MIPS汇编语言。3 .在QtSpim模拟器单步执行,查看通用寄存器和内存空间的变化。四、实验报告:1 .说明你做实验的过程(重要步骤用屏幕截图表示)和执行结果。2 .对实验结果进行分析,程序调用过程中三个子函数的栈指针、帧指针等寄存器内容以及堆栈的内容的异同。五、附录:+汇编指令基础。常用指令。实验五 机器指令执行过程(第6章)一、实验目的:1 .了解数据通路的设计。2 .了解控制器的设计。3 .理解机器指令的执行过程。二、实验要求:将OpenMIPS模型进行综合、仿真,分析数据通路与控制器的设计,进一步理解机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论