- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验1MIPS指令系统和MIPS体系结构_实验报告实验1MIPS指令系统和MIPS体系结构_实验报告
计算机系统结构实验报告
班级
实验日期
实验成绩
姓名
学号
实验名称
实验1 MIPS指令系统和MIPS体系结构
实
验
目
的
、
要
求
了解和熟悉指令级模拟器;
熟练掌握MIPSsim模拟器的操作和使用方法;
熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解;
熟悉MIPS体系结构
对指令级模拟器有一定了解;
能够熟练使用MIPSsim模拟器;
理解MIPS指令系统及其特点,加深对MIPS指令操作语义的理解。
实
验
内
容
、
步
骤
及
结
果
实验内容;首先要阅读MIPSsim模拟器的使用方法,了解MIPSsim的指令系统和汇编语言。完成补充实验。
补充实验(实验源代码和结构截图附在后面)
a.整数n求阶乘
在这里我们运用了三个寄存器,一个用于记录初始n并保存累成结果,一个保存1用于比较,另一个保存n-1,并不断减1比较跳转,用于阶乘的计算。
b.(X-Y)*2-(X+Y)/8
在这里我们用逻辑左移SLL和逻辑右移SRL指令来进行‘*’和‘/’运算,移动1位代表“*2”或“/2”。
在以下的定义中
.data
X:
.word 112
Y:
.word 8
X,Y实际代表的为内存地址,表示该地址的内存中存储的为112和8,因此为了将数据112放入寄存器中,我们要先通过ADDIU $r1, $r0, X命令,将存储数据的内存地址放入寄存器中,再LW $r1, 0($r1)按照寄存器里的内存地址,将数据load到寄存器中。
c.64位整数求补运算
这一题主要要注意的是模拟器不支持直接对64位的数据进行load和store操作,所以我们采用两个寄存器,分两次将数据高低32位分别从内存取出送回eg: LW $r2, 0($r1)
LW $r3, 4($r1)
XOR指令用于按位取反,这里二进制的111....1(32位)实际是-1的补码表示,顾XORI $r2, $r2, -1。
求补运算是按位取反再加1,这里要注意加1后,低32位是否溢出,产生进位,我们发现只有取反后二进制为全1(即真值为-1)才会产生溢出进位,要在高32位上加1,因此我们只需比较这样一种情况即可。
总
结
1、在MIPSsim模拟器中r0的值始终保持0,无法人为的更改,可以利用此进行运算。
2、在文件中用.txt对代码部分进行定义.data对数据部分进行定义。
3、在程序的测试中我们可以通过“执行”,“连续执行”直接得到结果。
附:
1、求阶乘 Eg:求6的阶乘 结果保存在R1中
.text
main:
ADDIU $r1, $r0, 6
ADDIU $r3, $r0, 1
SUB $r2, $r1, $r3
PROG1:
MUL $r1, $r1, $r2
SUB $r2, $r2, $r3
BGTZ $r2, PROG1
NOP
NOP
2、求(X-Y)*2-(X+Y)/8 eg:x=112,y=8 结果保存在R1中
.text
main:
ADDIU $r1, $r0, X
LW $r1, 0($r1)
ADDIU $r2, $r0, Y
LW $r2, 0($r2)
SUB $r3, $r1, $r2
SLL $r3, $r3, 1
ADD $r4, $r1, $r2
SRL $r4, $r4, 3
ADD $r1, $r3, $r4
NOP
NOP
.data
X:
.word 112
Y:
.word 8
3、64位的整数。对该整数进行求补运算
Eg:高32位为90,低32位为112,结果的高32位保存在R3中,低32位保存在R2中。
Eg:高32位为90,低32位为0,结果的高32位保存在R3中,低32位保存在R2中。
文档评论(0)