班级 | ***** | 实验日期 | ***** | 实验成绩 | |
姓名 | ***** | 学号 | ******* | ||
实验名称 | MIPS指令系统和MIPS体系结构 | ||||
实 验 目 的 、 要 求 及 器 材 | 试验目的: 1、了解和熟悉指令级模拟器; 2、熟练掌握MIPSsim模拟器的操作和使用方法; 3、熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解; 4、熟悉MIPS体系结构; 实验要求: 1、对指令级模拟器有一定了解; 2、能够熟练使用MIPSsim模拟器; 3、理解MIPS指令系统及其特点,加深对MIPS指令操作语义的理解; 实验器材: 1、实验平台采用指令级和流水线操作级模拟器MIPSsim; 2、计算机一台; | ||||
实 验 内 容 、 步 骤 及 结 果 | 【求阶乘】 理清实验思路,使用算数指令即可完成。 结果:
【求(X-Y)*2-(X+Y)/8】 使用简单的运算指令即可。 结果:
【求补码】 求补码基本思路利用异或运算,将原数与-1进行疑惑,等到其相应的反码,之后对其进行加1运算得到相应的补码,但是MIPS指令系统大部分运算支持的是32位,因此要将其进行补码运算还需要处理些问题,我们可以利用2个32位的运算来模拟位的求补运算。 具体如下,分别取2次值到2个寄存器中,分别存放高位和低位,之后对高位和低位分别进行求反运算,之后对低位的数进行加1,判断是否有进位。有进位则最高位加1,之后在分别存储到相应的内存单元中。 从内存的OX00000000单元开始存放位整数 | ||||
总 结 | 本次试验让我们熟悉了基本指令的使用,对机器指令有了更深入的了解。 通过MIPSsim软件的使用,让我们很好的模拟了指令执行的过程,相信我们在后续的实验中会学习到跟多的内容。 | ||||
附 录 | 代码部分: 【求阶乘】 # 求阶乘 # 将寄存器R3中的值默认为1;将要求的数放在R1中; .text main: ADDI $r2,$r1,0 #在R1中放置要求阶乘的数 PROG2: SUB $r1,$r1,$r3 #R1中的数减一 MUL $r2,$r1,$r2 #R1与R2做乘法,将乘积放在R2中 BGTZ $r1,PROG2 #若R1仍大于零,则转移 NOP 【求(X-Y)*2-(X+Y)/8】 # 求(X-Y)*2-(X+Y)/8 #X放在R1中;Y放在R2中;最终结果放在R3中; .text main: # 算术运算指令 SUB $r3,$r1,$r2 ADD $r4,$r1,$r2 DSLL $r3,$r3,1 DSRL $r4,$r4,3 SUB $r3,$r3,$r4 NOP 【求补码】 #求补码 .text main: ADDI $r3,$r3,-1 LW $r1,0($r4) #取字 ADDI $r4,$r4,4 LW $r2,0($r4) #取字 XORI $r1,$r1,-1 XORI $r2,$r2,-1 BNE $r1,$r3,NEXT ADDI $r2,$r2,1 NEXT: ADDI $r1,$r1,1 SW $r2,0($r4) ADDI $r5,$r5,4 SUB $r4,$r4,$r5 SW $r1,0($r4) |