计算机组成原理mips与arm,计算机组成原理之MIPS指令系统和MIPS体系结构

一.实验目的

(1)了解和熟悉指令级模拟器

(2)熟悉掌握MIPSsim模拟器的操作和使用方法

(3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解

(4)熟悉MIPS体系结构

模拟器360云盘分享https://yunpan.cn/cRLzwTkYc3TEt 访问密码 f9a6

二. 实验内容和步骤

首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统。

(1)、启动MIPSsim。

(2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。

64e140aadaa1a66e4c2192fc01cc6ae3.png

(3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。

(4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置。

abd321922e0e589f078fb7b5b4d2f608.png

C:\users\Administrator\Desktop\计算机组成原理实验\MIPSsim\miosSIM模拟器\样例程序\alltest.s

(5)、查看“寄存器”窗口PC寄存器的值:[PC]= 0X00000000 。

1ef9699e79aa80715e63d41598795ea0.png

(6)、执行load和store指令,步骤如下:

1)单步执行一条指令(F7)。

2)下一条指令地址为 0X00000004 ,是一条 有 (有,无)符号载入 字节(字节,半字,字)指令。

18706d82a814ead6dfaf1b86e5ea8ccc.png

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 。

d456b52b34dd46e32db46867e59cc785.png

(7)、执行算术运算类指令。步骤如下:

1)双击“寄存器”窗口中的R1,将其值修改为2。

2)双击“寄存器”窗口中的R2,将其值修改为3。

599228456f1811365cf16afcef1af0c0.png

3)单步执行一条指令。

4)下一条指令地址为 0X00000020 ,是一条加法指令。

5)单步执行一条指令。

6)查看R3的值,[R3]= 5 。

7)下一条指令地址为 0X00000024 ,是一条乘法指令。

0f0d8994e0323c5db8abd97a90130ae5.png

8)单步执行一条指令。

9)查看LO、HI的值,[LO]= 0X0000000000000006 ,[HI]= 0X0000000000000000

bfb0ec4bfdf5531eb3d555589c5c456f.png

(8)、执行逻辑运算类指令。步骤如下:

1)双击“寄存器”窗口中的R1,将其值修改为0XFFFF0000。

2)双击“寄存器”窗口中的R2,将其值修改为0XFF00FF00。

3)单步执行一条指令。

4)下一条指令地址为 0X00000030 ,是一条逻辑与运算指令,第二个操作数寻址方式是(寄存器直接寻址,立即数寻址)。

5)单步执行一条指令。

6)查看R3的值,[R3]= 0X00000000FF000000 。

fa2ef8ffbb08dee3bc08a262b517a138.png

7)下一条指令地址为 0X00000034 ,是一条逻辑或指令,第二个操作数寻址方式是(寄存器直接寻址,立即数寻址)。

8)单步执行一条指令。

9)查看R3的值,[R3]= 0X0000000000000000 。

(9)、执行控制转移类指令。步骤如下:

1)双击“寄存器”窗口中R1,将其值修改为2。

2)双击“寄存器”窗口中R2,将其值修改为2。

930f0a58cba67f6a2c8caaa45963efc5.png

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 16进制-> 0X000000000000005c

13) 单步执行1条指令。

14)查看R1的值,[R1]= 116 0X0000000000000074 。

15)下一条指令地址为 0X00000068 ,是一条JALR指令,保存目标地址的寄存器为R1 ,保存返回地址的目标寄存器为R3。

16)单步执行1条指令。

17)查看PC和R3的值,[PC]= 0X00000074 ,[R3]= 108 0X000000000000006c 。

三、实验结果分析

61223df629e307d9ba86cbd7122cf4ec.png

32917a073c862f53a29e3c5844c2ff79.png

7b3b181d954260bf79ee2fbf60ae3f0d.png

f983b700ab3882afbc63728110a285a5.png

b47cc1de6ea3b451ae1a60ec671c0520.png

e5a84c64ea7fcc33b96a0d49d49cbe80.png

四.实验总结

MIPSsim模拟器的基础操作以及使用方法;单步执行,程序的载入,以及配置方式中的流水;熟悉MIPS指令系统;加深对MIPS指令操作语义的理解;并对代码区,寄存器进行了剖析,但是对时钟周期内存这部分理解的还不是很清晰;在以后的实验中解决;思考了LB,字节,字,双字,以及无符号如何查看,以及buffer如何查看内容;然后通过对对代码区中的符号指令进行了自我学习;以及对ARM进行了很好的温习;认识LW,LB,LU,ADDU,ADDIU,SLL,MUL,BEQ,等简单的指令的含义进行了分析;但是仍然存在部分的寄存器值的变化未清楚其详细步骤;在接下来的继续环节中需要弄懂;

文档

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值