实验一_MIPS汇编实验
计算机系统结构实验mips64实验一

实验一熟悉实验环境一、实验目的1.了解WinMIPS64的基本功能和作用;2.熟悉MIPS指令、初步建立指令流水执行的感性认识;3.掌握该工具的基本命令和操作,为实验作准备。
二、实验内容1.下载WinMIPS64;运行样例代码并观察软件各个观察窗口的内容和作用,掌握软件的使用方法。
2.学会正确使用WinMIPS64的IO方法。
三、实验步骤1.装载测试程序用标准的text编辑器来新建一个名为sum.s的文件,这个文件的功能是,计算两个整数A、B之和,然后将结果传给C。
程序如下:.dataA: .word 10B: .word 8C: .word 0.textmain:ld r4,A(r0)ld r5,B(r0)dadd r3,r4,r5sd r3,C(r0)halt在将该程序装载进WinMIPS64之前,用asm.exe来检验该输入程序的语法正确性。
asm.exe程序文件在所给的winmips压缩包里有,用命令行使用它。
具体操作为,打开终端,利用cd命令进到D:\WinMIPS64目录中,然后直接使用asm.exe sum.s 命令,检查输出结果是否无误。
在开始模拟之前,至少应装入一个程序到主存。
为此,选择File / OPEN,窗口中会列出当前目录中所有汇编程序,包括sum.s。
按如下步骤操作,可将这个文件装入主存。
点击sum.s点击open 按钮可以在CODE窗口观察代码内容,可以在DATE窗口观察程序数据了。
2.模拟(1) Cycles窗口它显示流水线的时空图。
(2) Registers窗口这个窗口显示存储在寄存器中的值。
(3)Statistics窗口这个窗口是用来记录一些模拟周期的统计数据。
图中表示了该程序有13个时钟周期,5条指令,CPI为2.600,有4个RAW Stalls,代码大小为20个Bytes。
(4) Pipeline窗口在Pipeline窗口中,展示了MIPS64处理器的内部结构,其中包括了MIPS64的五级流水线和浮点操作(加法/减法,乘法和除法)的单元。
实验1 MIPS指令系统和MIPS体系结构

实验1 MIPS指令系统和MIPS体系结构1.1 实验目的1.了解和熟悉指令集模拟器。
2. 熟练掌握模拟器MIPSsim的操作和使用方法。
3. 熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解。
4. 熟悉MIPS体系结构。
1.2 实验平台实验平台采用指令级和流水线操作级模拟器MIPSsim1.3 实验内容和步骤首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。
1. 启动MIPSsim2. 选择“配置”→“流水方式”选项,使模拟器工作在非流水方式下。
3.参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。
可以先载入一个样例程序,然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。
4.选择“文件”→“载入程序”选项,加载样例程序alltest.s,然后查看“代码”窗口,查看程序所在的位置。
(起始地址为0x00000000)5.查看“寄存器”窗口PC寄存器的值:[PC]=0x6. 执行load和store指令,步骤如下:(1)单步执行一条指令(F7)(2)下一条指令地址为0x ,是一条(有,无)符号载入(字节,半字,字)指令。
(3)单步执行一条指令(F7)(4)查看R1的值,[R1] =0x 。
(5)下一条指令地址为0x ,是一条(有,无)符号载入(字节,半字,字)指令。
(6)单步执行一条指令。
(7)查看R1的值,[R1] =0x 。
(8)下一条指令地址为0x ,是一条(有,无)符号载入(字节,半字,字)指令。
(9)单步执行一条指令。
(10)查看R1的值,[R1] =0x 。
(11)单步执行一条指令。
(12)下一条指令地址为0x ,是一条(有,无)符号载入(字节,半字,字)指令。
(13)单步执行一条指令(F7)(14)查看内存BUFFER处字的值,值为0x 。
7. 执行算术运算类指令。
mips 实验报告

MIPS实验报告1. 引言MIPS(Microprocessor without Interlocked Pipeline Stages)是一种经典的指令集架构(ISA),被广泛应用于计算机体系结构的教学和研究中。
本实验报告将介绍使用MIPS指令集实现的一系列实验,包括指令执行、流水线设计和缓存优化等。
2. 实验目标本次实验的主要目标是通过设计和实现一系列MIPS指令,加深对计算机体系结构的理解,并掌握MIPS指令的执行过程和流水线设计。
3. 实验环境为了完成实验,我们使用了MIPS模拟器和相应的开发工具。
这些工具提供了一个仿真环境,可以在计算机上执行MIPS指令,并提供了调试和测试的功能。
4. 实验步骤步骤1:设计指令首先,我们需要设计一系列MIPS指令,以实现特定的功能。
例如,我们可以设计一个加法指令,将两个寄存器中的值相加,并将结果存储到另一个寄存器中。
步骤2:实现指令接下来,我们需要在MIPS模拟器中实现这些指令。
通过编写相应的汇编代码,我们可以将指令转化为机器码,并在模拟器中执行。
步骤3:调试和测试一旦指令实现完成,我们就可以开始调试和测试。
通过单步执行指令,我们可以观察程序的执行过程,并检查寄存器和内存中的数据是否符合预期。
步骤4:性能优化在实现指令的过程中,我们还可以考虑对程序进行性能优化。
例如,通过引入流水线技术,可以提高指令的执行速度。
此外,我们还可以设计和实现缓存系统,以减少内存访问的延迟。
5. 实验结果经过一系列的设计、实现和优化,我们成功完成了MIPS指令的实验。
通过观察实验结果,我们可以得出一些结论和发现。
6. 结论本次实验通过设计和实现MIPS指令,加深了对计算机体系结构的理解,并掌握了MIPS指令的执行过程和流水线设计。
通过调试和测试,我们进一步完善和优化了指令的实现。
实验结果表明,我们的设计能够成功执行各种指令,并具有一定的性能优化。
7. 参考文献参考文献提供了关于MIPS指令集和计算机体系结构的详细信息,为本实验提供了重要的支持和指导。
实验一:MIPS指令集实验

深圳大学实验报告课程名称:计算机系统(3)实验项目名称:MIPS指令集实验学院:计算机与软件学院专业:计算机与软件学院所有专业指导教师:*****报告人:******* 学号:********** 班级:******* 实验时间:2017年10月16日星期一实验报告提交时间:2017年10月19日星期四教务处制一、实验目标:了解WinMIPS64的基本功能和作用;熟悉MIPS指令、初步建立指令流水执行的感性认识;掌握该工具的基本命令和操作,为流水线实验作准备。
二、实验内容按照下面的实验步骤及说明,完成相关操作记录实验过程的截图:1)下载WinMIPS64;运行样例代码并观察软件各个观察窗口的内容和作用,掌握软件的使用方法。
(80分)2)学会正确使用WinMIPS64的IO方法;(10分)3)编写完整的排序程序;(10分)三、实验环境硬件:桌面PC软件:Windows,WinMIPS64仿真器四、实验步骤及说明WinMIPS64是一款指令集模拟器,它是基于WinDLX设计的,如果你对于WinDLX这款软件十分熟悉的话,那么对于WinMIPS64也会十分的容易上手。
DLX 处理器(发音为"DeLuXe")是Hennessy 和Patterson合著一书《Computer Architecture - A Quantitative Approach》中流水线处理器的例子。
WinDLX是一个基于Windows的模拟器。
本教程通过一个实例介绍WinMIPS64的使用方法。
WinMIPS64模拟器能够演示MIPS64流水线是如何工作的。
本教程使用的例子非常简单,它并没有囊括WinMIPS64的各个方面,仅仅作为使用WinMIPS64的入门级介绍。
如果你想自己了解更多的资料,在给出的winmips64.zip中,有WinMIPS64 — Documentation Summary.html和winmipstut.docx两个文件可以供你随时参考,其中涵盖了WinMIPS64的指令集和模拟器的组成与使用方法。
实验1 MIPS指令系统和MIPS体系结构_实验报告

.data
X:
.word 112
Y:
.word 8
X,Y实际代表的为内存地址,表示该地址的内存中存储的为112和8,因此为了将数据112放入寄存器中,我们要先通过ADDIU $r1, $r0, X命令,将存储数据的内存地址放入寄存器中,再LW $r1, 0($r1)按照寄存器里的内存地址,将数据load到寄存器中。
补充实验(实验源代码和结构截图附在后面)
a.整数n求阶乘
在这里我们运用了三个寄存器,一个用于记录初始n并保存累成结果,一个保存1用于比较,另一个保存n-1,并不断减1比较跳转,用于阶乘的计算。
b.(X-Y)*2-(X+Y)/8
在这里我们用逻辑左移SLL和逻辑右移SRL指令来进行‘*’和‘/’运算,移动1位代表“*2”或“/2”。
熟练掌握MIPSsim模拟器的操作和使用方法;
熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解;
熟悉MIPS体系结构
对指令级模拟器有一定了解;
能够熟练使用MIPSsim模拟器;
理解MIPS指令系统及其特点,加深对MIPS指令操作语义的理解。
实
验
内
容
、
步
骤
及
结
果
实验内容;首先要阅读MIPSsim模拟器的使用方法,了解MIPSsim的指令系统和汇编语言。完成补充实验。
求补运算是按位取反再加1,这里要注意加1后,低32位是否溢出,产生进位,我们发现只有取反后二进制为全1(即真值为-1)才会产生溢出进位,要在高32位上加1IPSsim模拟器中r0的值始终保持0,无法人为的更改,可以利用此进行运算。
2、在文件中用.txt对代码部分进行定义.data对数据部分进行定义。
计算机系统结构实验一MIPS指令系统和MIPS体系结构

计算机系统结构实验报告班级计算机2班实验日期2016.2.24实验成绩姓名殷凤学号22920132203917实验名称MIPS指令系统和MIPS体系结构实验目的要求实验目的及要求:了解和熟悉指令级模拟器;熟练掌握MIPSsim模拟器的操作和使用方法;熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解;熟悉MIPS体系结构。
实验器材:实验平台采用指令级和流水线操作级模拟器MIPSsim;计算机一台。
实验内容、步骤及结果1. 阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言;2. 对照实验教程启动、配置MIPSsim.exe,参照使用说明,载入程序,多种执行方式查看结果;3. 补充实验的完成:a.求阶乘问题:解决方法:在代码最后加一句指令TEQ r0,r0思路:将自定义的整数存入一个整数寄存器r1,r2,“1”的值存入寄存器r3作为求阶乘时减一的用处,r2减一,与原值r1相乘结果存入r1,判断r2值是否已经减到0,是就运行结束,否则跳转继续r2减一与r1相乘,最后r1的内容就是最终结果。
结果截图:b.ALU运算求(X-Y)*2-(X+Y)/8问题:无思路:题目要求不可以使用乘除指令,则利用逻辑左移(SLL)一位实现乘2,利用逻辑右移(SRL)3实现除以8。
r1 r2中存放自定义的x y,r3中存放x-y的值,r4存放x+y的值,最后结果放在r5中。
结果截图:c.求补码问题:解决方法:把高32位和低32位之间base的差值4个字节事先存进寄存器r6问题:解决方法:改成LABLE1问题:如果是正数的话结果总是错误的解决方法:刚开始忘记判断正负了,如果是正数就直接存回存储器原来的位置,判断正负通过高32位(存在r2中)和十六进制数0x00…0080000000(寄存器r9)进行AND,如果结果等于0(与$r0比较),就为正数,否则就是负数。
思路:r1中放取字指令LW的base值,根据内存中的数据来决定,存储器中高32位数据取出来放进r2,低32位数据放进r3。
杭电计算机组成原理MIPS汇编器模拟器实验6#精选

实验环境
PCSpim模拟器
实验内容(算法、程序、步骤和方法)
1.使用记事本编辑.asm文件,输入内容
2.运行PCSpim程序,在七分钟打开asm文件,先连续执行,输入地址0X0040000,在单步执行,按照需要在控制条输入2个数据,观察结果。
3.按照之前的步骤执行,输入指令,单步执行,记录。
sub $12,$7,$8;#$12=FFFF_900E
and $13,$9,$12;#$13=FFFF_800E
or $14,$9,$12;#$14=FFFF_9FFF
or $15,$6,$7;#$15=0000_000F
nor $16,$6,$7;#$16=FFFF_FFF0
add $17,$7,$3;#$17=0000_0010
sllv $7,$6,$2;#$7=0000_000E
add $9,$5,$6;#$9=0000_000C
sllv $8,$6,$9;#$8=0000_7000
xor $9,$1,$8;#$9=FFFF_8FFF
add $10,$9,$1;#$10=FFFF_8FFE
sub $11,$8,$7;#$11=0000_6FF2
nor $1,$0,$0;#$1=FFFF_FFFF
sltu $2,$0,$1;#$2=0000_0001
add $3,$2,$2;#$3=0000_0002
add $4,$3,$2;#$4=0000_0003
add $5,$4,$3;#$5=0000_0005
add $6,$5,$3;#$6=0000_0007
sub $24,$20,$22;#$24=0000_0001
mips 实验报告

mips 实验报告MIPS实验报告引言:计算机体系结构是计算机科学中的一个重要领域,它研究计算机硬件和软件之间的关系。
在计算机体系结构的学习过程中,我们接触到了MIPS (Microprocessor without Interlocked Pipeline Stages)指令集架构。
本实验报告将介绍我们在实验中对MIPS进行的学习和实践。
一、MIPS的背景和特点MIPS是一种经典的RISC(Reduced Instruction Set Computer)指令集架构,它于1981年由斯坦福大学的约翰·亨尼西(John Hennessy)和他的学生大卫·帕特森(David Patterson)提出。
MIPS架构的设计理念是简化指令集,提高指令执行速度,以及降低硬件复杂度。
MIPS指令集包含了一组简洁而强大的指令,使得编译器和硬件设计更容易实现。
该架构的特点包括高效的流水线执行、固定长度的指令格式、延迟槽等。
二、MIPS的实验环境和工具为了学习和实践MIPS指令集,我们使用了一款名为MARS(MIPS Assembler and Runtime Simulator)的工具。
MARS提供了一个模拟器,可以在计算机上运行MIPS指令。
它还提供了汇编器和调试器,方便我们编写和调试MIPS程序。
通过MARS,我们可以观察和分析指令的执行过程,更好地理解MIPS的工作原理。
三、MIPS的基本指令和寄存器MIPS指令集包含了一系列基本指令,如加载(Load)指令、存储(Store)指令、算术运算(Arithmetic)指令、逻辑运算(Logic)指令等。
这些指令可以完成各种计算和数据操作任务。
同时,MIPS架构还提供了32个通用寄存器,用于存储和操作数据。
这些寄存器以$0、$1、$2等命名,并且有特殊用途的寄存器如程序计数器(PC)和堆栈指针(SP)等。
四、MIPS程序设计实践通过MARS工具,我们编写了一些简单的MIPS程序,以加深对MIPS指令集和寄存器的理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一MIPS汇编编程
实验介绍
本实验通过编写几个汇编小程序来帮助各位熟悉常用的MIPS汇编指令
实验目标
1.学习使用MARS模拟器
2.熟悉常用的MIPS指令
3.编写几个MIPS汇编程序
a)Fibonacci数列
b)冒泡排序
c)Booth乘法
实验原理
1.MIPS汇编基本格式
a)代码段由.text开头
b)数据段以.data开头(本次实验可以不适用数据段)
c)跳转标记格式如“lable:”,为标记名+冒号
2.MARS是一个MIPS模拟器,可以使用其来编写并调试MIPS汇编程序
3.MIPS程序要求
a)Fibonacci数列:将$2,$3寄存器初始化为fibonacci数列的前两个数0,1;$4为数
列中所需得到的数字的序号($4=4 即表示得到第四个fibonacci数);最后得到的
结果存入$1
b)将一串数列输入$2-$6,用冒泡排序算法对其进行排序
c)运用布斯乘法算法实现两个数的乘法,结果用两个寄存器表示,具体算法可参考
wikipedia上的相关词条
PS:由于MIPS的一些默认操作会改变$1的值,所以运算时尽量不要使用$1
4.我们必须仅使用以下指令来编写MIPS的汇编程序。
实验步骤
1.下载并打开MARS
2.在MARS中编写汇编程序
3.运行并调试汇编程序。