计算机体系结构:实验2_DLX-MIPS-RISC-V指令集实验

1. winDLX模拟器

熟悉winDLX模拟器,并确定指令格式中各个域的具体值。包括如下内容:

① 阅读winDLX目录中的wdlxtut.pdf文件(为了方便英文阅读困难的同学们,我从网上下载了一个中文版文件WinDLX教程(中文).doc),并按其中的步骤操作、学习winDLX模拟器。在完成下面问题的过程中,若有疑问,可在MIPS目录的材料中查询相关信息,或者在百度上查询相关信息。

② 对于FACT.S程序,请从中选出3-5条不同的指令,并分别指出它是哪种指令(R-type,I-type,还是J-type),并参照教科书2-28页中的图2.19,填写指令格式中各个域的二进制值(提示:将程序载入到模拟器后,可在CODE子窗口中观察到)。为了清楚起见,最好用填表的形式。

③ 请通过CODE窗口的各种选项查看数据,进而判断出DLX是big-endian还是little-endian?是否是对齐的(aligned)?


1.1. winDLX基本使用

按照教程中的样例一步步进行。下边是剪影
在这里插入图片描述

图 1 1 fact.s程序code

1.2. FACT.S程序指令分析

指令助记符指令类型0-56-1011-1516-2021-2526-31
addi r2,r0,0x1I-type00100000000000100000000000000001
movi2fp f11,r2I-type00000000010000000101100000110101
cvti2d f2,f11I-type00000101011000000001000000001101
led f0,f4I-type00000100000001000000000000011100
subd f0,f0,f4R-type00000100000001000000000000000101

表格 1 DLX 指令分析

1.3. 端序判断

在这里插入图片描述

图 1 2 通过memory 工具判断端序

结论:
DLX为大端序,地址左小右大,但是数值最高位在左,是为大端序。
是对齐的。

2. Risc-V和Venus

了解RISC-V的在线模拟器Venus的使用方法。包括如下内容:

  • 阅读Venus目录中的venustut.txt文件,并按其中的步骤操作、学习RISC-V的在线模拟器Venus的用法。在完成下面问题的过程中,若有疑问,可在RISC-V目录的材料中查询相关信息,或者在百度上查询相关信息。
  • 程序ex1.s的功能是什么?程序运行完后,得出的结果是什么数字?
  • 对于ex1.s程序,请从中选出3-5条不同的指令,并对于其中每条指令,指出它是哪种指令。请注意:RISC-V的指令格式分6种(除了R-type,I-type,J-type,还有U-type,S-type,B-type),并填写指令格式中各个域的二进制值。

2.1. Venus的学习

简单学习了在线的venus的用法,包括终端使用,simulator的trace、edit功能。
在这里插入图片描述

图 2 1 Venus学习剪影

2.2. Ex1.s程序分析

在这里插入图片描述

图 2 2 trace追踪
通过程序追踪发现核心区为通过次数为9的循环,完成斐波那契数列的计算。最后输出数列第九位,即34
在这里插入图片描述

图 2 3 ex1.s 程序结果
这里在venus的文件名为test.a 和a.out。

2.3. Ex1.a程序指令分析

指令助记符指令类型0-56-1011-1516-2021-2526-31
add x5 x0 x0R-type00000000000000000000001010110011
addi x6 x0 1I-type00000000000100000000001100010011
beq x28 x0 24B-type00000000000011100000110001100011
jal x0 -20J-type11111110110111111111000001101111
lw x28 0(x28)I-type00000000000011100010111000000011

表格 2 ex1.a程序指令分析

3. 收获和感想

本次实验通过学习和实践,了解到了xp系统经久不衰的魅力,更加通过学习,对DLX和RISC-V指令格式有了更深的理解。特别是,一开始,以为可以通过助记符直接看出是什么类型的指令,后来发现这样是行不通的——还是要从指令二进制码中综合分析才能得出结论。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值