实验一_MIPS汇编实验
- 格式:pdf
- 大小:466.01 KB
- 文档页数:3
实验一熟悉实验环境一、实验目的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.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实验报告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指令集和计算机体系结构的详细信息,为本实验提供了重要的支持和指导。
深圳大学实验报告课程名称:计算机系统(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的指令集和模拟器的组成与使用方法。
计算机系统结构实验报告班级计算机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 实验报告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指令集和寄存器的理解。
mips实验报告Title: MIPS实验报告Abstract:本实验报告旨在介绍MIPS(Microprocessor without Interlocked Pipeline Stages)架构及其在计算机体系结构课程中的应用。
通过实验,我们将了解MIPS指令集架构的基本原理和实现,以及如何使用MIPS模拟器进行程序设计和调试。
本报告将详细介绍MIPS架构的特点、指令集、寄存器组、内存模型等内容,并通过实验结果分析MIPS在计算机体系结构中的重要性和应用价值。
Introduction:MIPS(Microprocessor without Interlocked Pipeline Stages)是一种精简指令集计算机(RISC)架构,广泛应用于嵌入式系统和高性能计算领域。
在计算机体系结构课程中,学习MIPS架构可以帮助学生深入理解计算机的工作原理和指令级并行处理技术。
通过实验,学生可以通过模拟器编写和调试MIPS汇编程序,加深对计算机体系结构的理解。
MIPS Architecture:MIPS架构采用精简指令集(RISC)的设计理念,包括32位寄存器、固定长度的指令格式和简单的指令集。
MIPS架构的特点包括高性能、低功耗、易于实现和优化等优点,因此在嵌入式系统和高性能计算领域得到广泛应用。
MIPS指令集包括算术运算指令、逻辑运算指令、数据传输指令、控制流指令等,能够满足各种计算需求。
MIPS Simulator:为了方便学生学习和实验MIPS架构,通常会使用MIPS模拟器进行程序设计和调试。
MIPS模拟器可以模拟MIPS处理器的运行过程,包括指令执行、寄存器操作、内存访问等,帮助学生理解MIPS指令集的工作原理和实现过程。
通过MIPS模拟器,学生可以编写和调试MIPS汇编程序,加深对计算机体系结构的理解。
Experiment Results:通过实验,我们学习了MIPS架构的基本原理和实现,包括指令集、寄存器组、内存模型等内容。
实验一查看CPU和内存用机器指令和汇编指令编程
一、实验目的
1.掌握debug的使用方法,会用基本的D,R命令查看、显示内存和寄存器
2.了解汇编指令编程的方法。
二、实验任务
1检查在存储器低端的BIOS数据区的内容。
(1)检查串行与并行端口
(2)检查系统设备
(3)检查键盘Shift状态
(4)检查显示状态
2 考察ROM BIOS
目的:检查在存储器高端的ROM BIOS中的数据。
(1)检查版本通告
(2)检查ROM BIOS数据
3.用D、R命令查看、显示内存和寄存器,可对寄存器内容进行修改。
三、实验结果及分析
1、检查在存储器低端的BIOS数据区的内容
(1)检查串行与并行端口
说明:检查后发现有四个串行端口,分别是03F8、02F8、03E8、02E8;并行端口也有四个,分别是03BC、03BC、0378、0278、9FC0
(2)检查系统设备
(3)检查键盘Shift状态
(4)检查显示状态
2、考察ROM BIOS (1)检查版本通告
(2)检查ROM BIOS数据
3、用D、R命令查看、显示内存和寄存器,可对寄存器内容进行修改
四、实验总结(心得、体会)
1、通过对检查在存储器低端的BIOS数据区的内容的查看,可以了解计算机的各种状态,而考察ROM BIOS可以鉴定计算机的出厂信息。
2、通过用D、R命令查看、显示内存和寄存器,可以了解计算机运行的过程步骤,并且可以通过偏移地址读取内容。
3、在读取时需要注意的是,在DEBUG显示中是低位至高位的显示,而我们需要的是高位至低位的显示方式,所以在操作时对于双字节的读取,需要将前后字节地址内容互换。
实验一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.运行并调试汇编程序。