实验一_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显示中是低位至高位的显示,而我们需要的是高位至低位的显示方式,所以在操作时对于双字节的读取,需要将前后字节地址内容互换。
汇编实验一实验报告一、实验目的1.了解汇编语言的基本概念和基本语法。
2.掌握常见汇编指令的使用方法。
二、实验器材1.计算机一台。
2.汇编语言开发环境。
三、实验原理和方法1.汇编语言是低级程序语言,是计算机可以直接识别并执行的语言。
2.汇编语言采用助记符表示计算机指令,并且每一条汇编指令都对应一条机器指令。
四、实验过程及结果1.编写一个汇编程序,实现将两个数相加并输出结果的功能。
2.打开汇编语言开发环境,创建一个新的源文件。
3.在源文件中编写汇编程序,并保存。
4.汇编程序的伪指令section .data用于定义数据段,section .text用于定义代码段。
5.使用汇编指令mov将要相加的两个数赋值给寄存器,使用汇编指令add将两个数相加,并将结果保存到一个寄存器中。
6.使用汇编指令mov将结果从寄存器中取出,并输出到屏幕。
7.编译和运行汇编程序,查看结果是否正确。
五、实验结果分析经过编译和运行,实验程序顺利执行,结果正确输出。
通过这个实验,加深了对汇编语言的理解和掌握。
六、实验总结通过本次实验,我了解了汇编语言的基本概念和基本语法,并掌握了常见汇编指令的使用方法。
在实验过程中,我遇到了一些问题,如如何正确使用汇编指令以及如何调试程序等,但在同学和老师的帮助下,我顺利完成了实验,并且收获了很多。
通过这次实验,我深刻认识到汇编语言是一种非常底层的语言,需要对计算机底层原理有一定的了解,才能编写出正确的汇编程序。
同时,我也意识到汇编语言虽然复杂,但它的执行效率非常高,可以在一些特定场景下发挥出很大的作用。
总而言之,本次实验让我对汇编语言有了更深入的了解,也提高了我的编程能力。
希望在以后的学习中能够深入学习汇编语言,并能够熟练地使用它。
计算机系统结构实验报告班级计算机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)是一种经典的RISC(Reduced Instruction Set Computer)体系结构。
本实验报告将介绍我对MIPS实验的理解和实践,包括MIPS指令集的基本特点、实验环境的搭建、以及在MIPS架构下编写和运行程序的过程。
一、MIPS指令集的基本特点MIPS指令集是一种精简的指令集,其特点主要包括以下几点:1. 定长指令格式:MIPS指令采用32位定长指令格式,使得指令解码和执行过程更加高效。
2. 延迟槽:MIPS指令集中的延迟槽是指在分支指令后的一条指令,它总是会被执行,无论分支是否发生。
这种设计可以提高指令流水线的效率。
3. 五种指令格式:MIPS指令集包括R格式、I格式、J格式、COP0格式和COP1格式,分别用于处理寄存器相关操作、立即数操作、跳转操作、协处理器0操作和协处理器1操作。
4. 寄存器:MIPS体系结构中有32个通用寄存器,可以进行高速数据传递和操作。
二、实验环境的搭建为了进行MIPS实验,我们需要搭建相应的实验环境。
在本次实验中,我选择使用MARS(MIPS Assembler and Runtime Simulator)作为MIPS实验的模拟器。
MARS提供了一个图形化界面,可以方便地进行MIPS程序的编写、调试和运行。
搭建实验环境的步骤如下:1. 下载和安装MARS:从MARS官方网站上下载最新版本的MARS软件,并按照提示进行安装。
2. 配置MARS:打开MARS软件后,点击“Settings”菜单,选择“MIPS Assembler”选项卡。
在这里,我们可以设置MIPS汇编程序的语言类型、字符集和显示格式等。
3. 编写MIPS程序:在MARS的编辑器中,我们可以编写MIPS程序。
微机原理实验报告实验名称:MIPS汇编程序设计院系:电信学院班级:姓名:指导老师:一、实验目的:1.熟悉MIPS汇编程序开发环境,学习使用Qtstim工具。
知道如何查看内存空间分配。
2. 了解C语言语句与汇编指令之间的关系。
3. 掌握MIPS汇编程序设计,掌握QTSPIM的调试技术。
4. 了解MIPS汇编语言与机器语言之间的对应关系。
5. 熟悉常见的MIPS汇编指令6. 掌握程序的内存映像。
二、实验内容1.用汇编程序实现以下伪代码:要求使用移位指令实现乘除法运算。
Int main (){Int K,Y;Int Z[50];Y=56;For(k=0;k<50;K++) Z[k]=Y-16*(k/4+210);}三、程序设计及分析1.C语言分析:有两个变量是int型,一个数组型;还有一个循环执行过程。
2.汇编程序实现分析:首先需要定义用户数据段,获得一个内存空间作为数组空间。
再选定几个存放器作为K,Y以及输出,其中输出输出和Y可以合用一个存放器。
3.设计思路:分配完空间地址后,最重要的是完成循环控制。
循环控制有两个思路:可以是先判断后循环;或者是先循环后判断 即如图slti $t2,$t0,50 #判断k 是否于50beq $t2,$t3〔$t2=1循环,否那么结束。
〕四、程序实现及调试分析1.汇编程序代码实现:方法一.data #定义用户数据段z:.space 200 #数组为int型,大小为50,所以占内存4*50 str:.asciiz " "#输出结果之间的空隙.textmain:la $s0,z #$s0 #为数组在z[]li $t0,0 #$s1 #代表k计数,初始值为0li $t1,56 #$t2 #代表Y,初值为56loop:slti $t2,$t0,50 #判断k是否于50beq $t2,$0,done #当k大于等于50,跳转结束srl $t3,$t0,2 #k/4addi $t3,$t3,210 #k/4+210sll $t3,$t3,4 #16*(k/4+210)sub $t3,$t1,$t3 #y-16*(k/4+210)sw $t3,0($s0) #写进z[k]li $v0,1 #输出addi $a0,$s0,0syscallli $v0,4 #输出间隔la $a0,strsyscalladdi $s0,$s0,4 #地址移一位addi $t0,$t0,1 #k加1j loop #循环done:li $v0,10syscall2.调试过程1.编写程序:详细见代码2.装载程序选择file,选择Reinitialize and Load File,把写好的文件导入QtSpim。
MIPS汇编程序设计实验一、实验目的1.掌握QTSPIM的调试技术2.了解MIPS汇编语言与机器语言之间的对应关系3.掌握MIPS汇编程序设计4.了解C语言语句与汇编指令之间的关系5.熟悉常见的MIPS汇编指令6.掌握程序的存储映像二、实验要求1.完成汇编语言程序设计、调试、测试全过程2.指出用户程序的内存映像,包括代码段和数据段3.完成软件实验报告三、实验环境:QTSPIM运行在windows操作系统下的支持MIPS32指令集的MIPS微处理器仿真器,具备调试、运行MIPS32汇编指令程序的功能四、实验任务:用汇编程序实现以下源代码:要求采用移位指令来实现乘除法int main(){int k,y;int z[50];y=56;for(k=0:k<50;k++)z[k]=y-16*(k/4+210);}五、实现汇编源程序设计思路(算法):1.先判断k是否小于50,如果大于50,那么就直接跳到exit。
若小于50,则开始loop循环。
2.因为在z[k]中k不是立即数而是一个变量,因而用mips语言需要运用add语句进行地址相加。
3.在loop末尾需要让k++,同时$s2的地址首位需要加4.源代码:.dataz:.space 200.textmain:la $s2,zli $s1,0#k=0=$s1li $s0,56#y=56li $t0,50loop:beq $s1,$t0,exitsrl $t1,$s1,2addi $t1,$t1,210sll $t1,$t1,4sub $t1,$s0,$t1sw $t1,0($s2)addi $s1,$s1,1addi $s2,$s2,4j loopexit:li $v0,10syscall调试过程:当载入txt文件时,对话框出现如上内容,出现未识别的character,找到该行,为“la $s2,z;”,其中在z后多加了“;”号,导致出错,因而删除后,再次选择,载入,未出现错误提示框,点击运行,观察data框,数组z[50]储存数据如下:与预期结果符合。
深圳大学实验报告课程名称:计算机系统(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的指令集和模拟器的组成与使用方法。
mips汇编语言之实现swap函数收藏此程序用来交换两个整数已在pcspim下编译通过######################################################### programed by stevie zou #### purpose:to swap two values ###### 10-15-2008 ######### ############################### text segment ###############.text.globl mainmain: la $t0, number #读取两个整数并放入寄存器$t1,$t2 lw $t1, 0($t0)lw $t2, 4($t0)li $v0, 4 #打印msg1la $a0, msg1syscallli $v0, 1 #打印转换前$t1中的值move $a0, $t1syscallli $v0, 4 #打印msg2la $a0, msg2syscallli $v0, 1 #打印转换前$t2中的值move $a0, $t2syscallmove $t3, $t1 #关键部分,在寄存器间move数据move $t1, $t2move $t2, $t3li $v0, 4 #打印msg3la $a0, msg3syscallli $v0, 1 #打印转换后$t1中的值move $a0, $t1syscallli $v0, 4 #打印换行符/nla $a0, msg4syscallli $v0, 1 #打印转换后$t2中的值move $a0, $t2syscall########### data segment ##############.datanumber: .word 12,34msg1: .asciiz "the first number is:\n"msg2: .asciiz "\nthe second number is:\n"msg3: .asciiz "\nnow they are swapped as:\n"msg4: .ascii "\n"## end of file程序运行结果为:本文来自CSDN博客,转载请标明出处:/yihaozou/archive/2008/10/19/3081322.aspxmips汇编简单实例——一个小计算器收藏其实开始的时候一直在看mips的指令格式,看了、忘了,没什么效果。
实验一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.运行并调试汇编程序。