资源描述:
《计算机系统结构实验一mips指令系统和mips体系结构》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、计算机系统结构实验报告计算机2班实验口期2016.2.24买验成绩殷凤22920132203917实验名称实验H的要求实验内容、步骤及结果MIPS指令系统和MIPS体系结构实验目的及要求:了解和熟悉指令级模拟器;熟练掌握MlPSsim模拟器的操作和使用方法;熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解;熟悉MIPS体系结构。实验器材:实验平台采用指令级和流水线操作级模拟器MIPSsim;计算机一台。1.阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言;2.对照实验教程启动、配置MIPSsim.exe,参照使用说明,载入程序,多种执行方式查
2、看结果;3.补充实验的完成:a.求阶乘问题:解决方法:在代码最后加一句指令TEQrO,rO思路:将自定义的整数存入一个整数寄存器rl,r2,“1”的值存入寄存器r3作为求阶乘时减一的用处,r2减一,与原值rl相乘结果存入rl,判断1*2值是否己经减到0,是就运行结束,否则跳转继续r2减一与rl相乘,最rl的内容就是最终结果。结果截图:□回®園寄存器:mentsHIPSHIPSsiiaa
3、通用寄存器殳符号指令S®十进制O十六进制ADDIU$rlz$r0,8ADDIU$r2,$rOz8R0=0人ADDIU$r3,$r0,lRl=40320SUB$r2x$r2z$r3R2=0BLEZ$r
4、2,Label2
5、R3=1二1uaentsHIPSHIPSsima符号指令ADDIU$rl,$r0,5ADDIU$r2x$r0,5ADDIU$r3^rO.lSUB$r2z$r2,$r3BLEZ$r2,Label2通用寄存器®十进制O十六进制201AIIIIIIIIR0R1R2R3?
6、
7、一VIIb.ALU运算求(X-Y)*2-(X+Y)/8问题:无思路:题目要求不可以使用乘除指令,则利用逻辑左移(SLL)—位实现乘2,利用逻辑右移(SRL)3实现除以8。rlr2中存放自定义的xy,r3中存放x-y的值,结果截图:iaentsHIPSMIPSsiia符号指令ADDIU$rl,$rO
8、z15ADDIU$r2z$r0,lSUB$r3z$rl,$r2ADD$r4z$rlz$r2SLL$r3,$r3,l^PT.CrdAr4存放x+y的值,最后结果放在r5中通用寄存器®十进制O十六进制Rl=15R2=1R3=28R4=2R5=26vjimentsMIPSHIPSsia符号指令aADDIU$rl^rOz7ADDIU$r2,$r0,lSUB$r3x$rlz$r2ADD$r4z$rl,$r2SLL$r3x$r3zlSRL$r4z$r4x3^TTPfirR6rdc.求补码问题:通用寄存器©十进制O十六进制21■—I^11X1X1X1XR0R1R2R3R4R5汇编i昔误第6行:S
9、UBI$rl.$rlz4错误信息:无法识釗的磉作码•确定解决方法:把高32位和低32位之间base的差值4个字节事先存进寄存器r6问题:解决方法:改成LABLE1问题:如果是正数的话结果总是错误的解决方法:刚开始忘记判断正负了,如果是正数就直接存回存储器原来的位置,判断正负通过高32位(存在r2中)和十六进制数0x00...0080000000(寄存器r9)进行AND,如果结果等于0(与$r0比较),就为正数,否则就是负数。思路:rl中放取字指令LW的base值,根据内存中的数据来决定,存储器屮高32位数据取出来放进r2,低32位数据放进r3。如果判断是正数,则直接再存回去,如果是负数
10、,按位取反再加一得到补码。按位取反通过r2中的值都分别和-1(存进r5)进行异或,再加1,如果r3中有进位,那么r2的值也要加1,然后存入存储器原位置,如果r3中无进位就可以直接存入原位置,是否有进位通过1*3与-1异或结果和-1比较,如果等于-1(11...11),就会有进位,如果不等就没有进位。结果截图:圍内存(8c22000024060004)(73ddffffdbf9fffc)11(0x00000000逐0006240000228C0x00000000
11、
12、0x000000080006240000228C220826000000238CFFF9DBFFFFDD73(0026082
13、28c220000)(002608228c220000)園内存■nlX
14、I0x00000000EE0006240000228C[0x00000008220826000000238C人总结1.在使用指令时,一定要事先弄清楚指令的适用范围和参数的木质;2.冇符号数和无符号数要分辨清楚;3.程序安全退出:TEQ$r0,$r04.标号必须全部大写。附#testl-yf求阶乘.text录main:ADDIU$rl,$rO,5#rl中存自定义整数,也存最后