3MIPS指令系统和MIPS体系结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机组成原理实验报告学院(系):软件学院专业:软件工程班级:大数据2班学号:1415925131姓名:王经伟2016年11月16日实验3MIPS指令系统和MIPS体系结构一.实验目的(1)了解和熟悉指令级模拟器(2)熟悉掌握MIPSsim模拟器的操作和使用方法(3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解(4)熟悉MIPS体系结构二.实验内容和步骤首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统。(1)、启动MIPSsim。(2)、选择“配置”-“流水方式”选项,使模拟器工作在非流水方式。(3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。(4)、选择“文件”-“载入程序”选项,加载样例程序alltest.asm,然后查看“代码”窗口,查看程序所在的位置。(5)、查看“寄存器”窗口PC寄存器的值:[PC]=。(6)、执行load和store指令,步骤如下:1)单步执行一条指令(F7)。2)下一条指令地址为,是一条(有,无)符号载入(字节,半字,字)指令。3)单步执行一条指令(F7)。4)查看R1的值,[R1]=。5)下一条指令地址为,是一条(有,无)符号载入(字节,半字,字)指令。6)单步执行1条指令。7)查看R1的值,[R1]=。8)下一条指令地址为,是一条(有,无)符号载入(字节,半字,字)指令。9)单步执行1条指令。10)查看R1的值,[R1]=。11)单步执行1条指令。12)下一条指令地址为,是一条保存(字节,半字,字)指令。13)单步执行一条指令。14)查看内存BUFFER处字的值,值为。(7)、执行算术运算类指令。步骤如下:1)双击“寄存器”窗口中的R1,将其值修改为2。2)双击“寄存器”窗口中的R2,将其值修改为3。3)单步执行一条指令。4)下一条指令地址为,是一条加法指令。5)单步执行一条指令。6)查看R3的值,[R3]=。7)下一条指令地址为,是一条乘法指令。8)单步执行一条指令。9)查看LO、HI的值,[LO]=,[HI]=。(8)、执行逻辑运算类指令。步骤如下:1)双击“寄存器”窗口中的R1,将其值修改为0XFFFF0000。2)双击“寄存器”窗口中的R2,将其值修改为0XFF00FF00。3)单步执行一条指令。4)下一条指令地址为,是一条逻辑与运算指令,第二个操作数寻址方式是(寄存器直接寻址,立即数寻址)。5)单步执行一条指令。6)查看R3的值,[R3]=。7)下一条指令地址为,是一条逻辑或指令,第二个操作数寻址方式是(寄存器直接寻址,立即数寻址)。8)单步执行一条指令。9)查看R3的值,[R3]=。(9)、执行控制转移类指令。步骤如下:1)双击“寄存器”窗口中R1,将其值修改为2。2)双击“寄存器”窗口中R2,将其值修改为2。3)单步执行一条指令。4)下一条指令地址为,是一条BEQ指令,其测试条件是。5)单步执行1条指令。6)查看PC的值,[PC]=,表明分支(成功,失败)。7)一条指令是一条BGEZ指令,其测试条件是,目标地址为。8)单步执行1条指令。9)查看PC的值,[PC]=,表明分支(成功,失败)。10)下一条指令是一条BGEZAL指令,其测试条件是,目标地址为。11)单步执行1条指令。12)查看PC的值,[PC]=,表明分支(成功,失败);查看R31的值,[R31]=。13)单步执行1条指令。14)查看R1的值,[R1]=。15)下一条指令地址为,是一条JALR指令,保存目标地址的寄存器为R1,保存返回地址的目标寄存器为R3。16)单步执行1条指令。17)查看PC和R3的值,[PC]=,[R3]=。三、实验结果分析四.实验心得二.实验内容和步骤首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统。(1)、启动MIPSsim。(2)、选择“配置”-“流水方式”选项,使模拟器工作在非流水方式。(3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。(4)、选择“文件”-“载入程序”选项,加载样例程序alltest.asm,然后查看“代码”窗口,查看程序所在的位置。刚开始的时候出现上图的错误,后来百度了一下,原来是该软件只能在32位的电脑上运行,原打算下个64位的MIPSsim,可是没有找到,就换了台电脑。(5)、查看“寄存器”窗口PC寄存器的值:[PC]=0X00000000。(6)、执行load和store指令,步骤如下:1)单步执行一条指令(F7)。2)下一条指令地址为0X00000004,是一条有(有,无)符号载入字节(字节,半字,字)指令。3)单步执行一条指令(F7)。4)查看R1的值,[R1]=-128和0XFFFFFFFFFFFFFF80。5)下一条指令地址为0X00000008,是一条无(有,无)符号载入字(字节,半字,字)指令。6)单步执行1条指令。7)查看R1的值,[R1]=128和0X0000000000000080。8)下一条指令地址为0X0000000C,是一条无(有,无)符号载入字节(字节,半字,字)指令。9)单步执行1条指令。10)查看R1的值,[R1]=128和0X0000000000000080。11)单步执行1条指令。12)下一条指令地址为0X00000014,是一条保存字(字节,半字,字)指令。13)单步执行一条指令。14)查看内存BUFFER处字的值,值为0X00000080。(7)、执行算术运算类指令。步骤如下:1)双击“寄存器”窗口中的R1,将其值修改为2。2)双击“寄存器”窗口中的R2,将其值修改为3。3)单步执行一条指令。4)下一条指令地址为0X00000020,是一条加法指令。5)单步执行一条指令。6)查看R3的值,[R3]=5。7)下一条指令地址为0X00000024,是一条乘法指令。8)单步执行一条指令。9)查看LO、HI的值,[LO]=0X0000000000000006,[HI]=0X0000000000000000。(8)、执行逻辑运算类指令。步骤如下:1)双击“寄存器”窗口中的R1,将其值修改为0XFFFF0000。2)双击“寄存器”窗口中的R2,将其值修改为0XFF00FF00。3)单步执行一条指令。4)下一条指令地址为0X00000030,是一条逻辑与运算指令,第二个操作数寻址方式是寄存器直接寻址(寄存器直接寻址,立即数寻址)。5)单步执行一条指令。6)查看R3的值,[R3]=4278190080和0X00000000FF000000。7)下一条指令地址为0X00000034,是一条逻辑或指令,第二个操作数寻址方式是立即数寻址(寄存器直接寻址,立即数寻址)。8)单步执行一条指令。9)查看R3的值,[R3]=0X0000000000000000。(9)、执行控制转移类指令。步骤如下:1)双击“寄存器”窗口中R1,将其值修改为2。2)双击“寄存器”窗口中R2,将其值修改为2。3)单步执行一条指令。4)下一条指令地址为0X00000040,是一条BEQ指令,其测试条件是两操作数相等。5)单步执行1条指令。6)查看PC的值,[PC]=0X0000004c,表明分支成功(成功,失败)。7)一条指令是一条BGEZ指令,其测试条件是=0,目标地址为0X00000058。8)单步执行1条指令。9)查看PC的值,[PC]=0X00000058,表明分支成功(成功,失败)。10)下一条指令是一条BGEZAL指令,其测试条件是=0,目标地址为0X00000064。11)单步执行1条指令。12)查看PC的值,[PC]=0X00000064,表明分支成功(成功,失败);查看R31的值,[R31]=92和0X000000000000005c。13)单步执行1条指令。14)查看R1的值,[R1]=1160X0000000000000074。15)下一条指令地址为0X00000068,是一条JALR指令,保存目标地址的寄存器为R1,保存返回地址的目标寄存器为R3。16)单步执行1条指令。17)查看PC和R3的值,[PC]=0X00000074,[R3]=108和0X000000000000006c。四.实验心得MIPSsim模拟器的基础操作以及使用方法;单步执行,程序的载入,以及配置方式中的流水;熟悉MIPS指令系统;加深对MIPS指令操作语义的理解;并对代码区,寄存器进行了剖析,但是对时钟周期内存这部分理解的还不是很清晰;在以后的实验中解决;然后通过对对代码区中的符号指令进行了自我学习;以及对ARM进行了很好的温习;虽然可以按照实验的要求一步步的做出来,其实很迷茫,做完实验还是一脸的懵逼,不知道做的。刚开始加载样例程序alltest.asm的时候出现上图的错误,后来百度了一下,原来是该软件只能在32位的电脑上运行,原打算下个64位的MIPSsim,可是没有找到,最后只好找了台32位的电脑。buffer:就是缓冲区,用于暂时存储用户数据。(内存就是系统分配的一块存储区域,想存什么都可以。)寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果流水方式:从上到下先来后到先易后难大致意思就是说按顺序来

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功