体系结构实验报告
计算机体系结构实验报告

计算机体系结构实验报告实验目的:1.掌握计算机体系结构的基本概念和组成部分2.学会使用模拟器对计算机性能进行测试和优化3.理解计算机指令的执行过程和流水线工作原理4.掌握计算机性能指标的测量方法和分析技巧实验材料和工具:1.一台个人电脑2.计算机体系结构模拟器3.实验指导书和实验报告模板实验步骤:1.搭建计算机系统:根据实验指导书提供的指导,我们搭建了一个简单的计算机系统,包括中央处理器(CPU)、内存和输入输出设备。
2.编写测试程序:我们编写了一段简单的测试程序,用于测试计算机系统的性能。
3.运行测试程序:我们使用模拟器运行测试程序,并记录测试结果。
模拟器可以模拟计算机的执行过程,并提供各种性能指标的测量功能。
4.分析和优化:根据测试结果,我们对计算机系统的性能进行分析,并尝试优化系统设计和测试程序,以提高性能。
实验结果:通过测试程序的运行和性能指标的测量,我们得到了如下结果:1.计算机的时钟频率:根据模拟器显示的结果,我们得知计算机的时钟频率为1000MHz。
2. 指令执行时间:我们计算了测试程序的平均执行时间,得到了结果为5ms。
4.流水线效率:我们通过模拟器提供的流水线分析功能,得到了计算机流水线的平均效率为80%。
实验分析:根据测试结果1.提高时钟频率:通过增加时钟频率可以加快计算机的运行速度。
我们可以尝试调整计算机硬件的设计和制造工艺,提高时钟频率。
2.优化指令执行过程:我们可以通过优化指令的执行过程,减少执行时间。
例如,并行执行多个指令、增加指令缓存等。
3.提高流水线效率:流水线是提高计算机性能的关键技术,我们可以通过增加流水线级数和优化流水线结构,提高流水线效率。
4.增加并行计算能力:并行计算是提高计算机性能的重要途径,我们可以尝试增加计算机的并行计算能力,例如增加处理器核心的数量。
实验总结:通过本次实验,我们深入了解了计算机体系结构的工作原理和性能指标。
通过模拟器的使用,我们学会了对计算机性能进行测试和进行性能优化的方法。
软件体系结构实验报告

软件体系结构实验报告实验指导书实验一1、实验项目:软件体系结构设计(一)某系统C/S风格客户端软件体系结构设计2、实验目的:熟悉C/S风格的工作机制3、实验内容:针对某个应用系统,选用C/S风格作为这个系统的软件体系结构风格。
熟悉C/S风格的工作机制,对所考察的系统进行C/S风格客户端软件体系结构设计。
(针对不同的特定应用系统具体表述)实验二1、实验项目:软件体系结构设计(二)某系统C/S风格服务器软件体系结构设计2、实验目的:熟悉C/S风格的工作机制3、实验内容:针对某个应用系统,选用C/S风格作为这个系统的软件体系结构风格。
熟悉C/S风格的工作机制,对所考察的系统进行C/S风格服务器软件体系结构设计。
(针对不同的特定应用系统具体表述)实验三1、实验项目:UML建模某系统UML建模2、实验目的:深入理解UML建模的思想,熟悉UML建模方法3、实验内容:作为实际应用前的一种演练,深入理解UML建模的思想,熟悉UML建模方法,锻炼和培养分析问题、解决问题的能力。
针对某个选定的应用系统,对其进行用例建模、对象类建模和状态图建模。
实验四1、实验项目:某系统详细设计2、实验目的:细化前期设计的有关结果,做出软件的详细规格说明3、实验内容:详细设计(也叫过程设计)是软件设计的具体模块设计阶段,是在作为软件开发前期设计的体系结构设计和总体设计的基础上进行的。
目的是要细化前期设计的有关结果,做出软件的详细规格说明。
要求具体地设计目标系统给个模块的实现过程。
实验五1、实验项目:系统集成2、实验目的:系统集成与总结3、实验内容:综合考察前八次实验的内容,通盘考虑软件设计的整个过程,深入理解软件体系结构的构建过程教务管理系统序号名称基本属性1 教师教师号,姓名,性别,职称,出生日期,政治面貌,所属系部,身份证号,档案编号2 系部系部号,系部名称,办公地点,电话3 专业专业代号,专业名称,所属系部4 教室教室号,类型(语音室,实验室,多媒体教室,普通教室等),规格,管理员,备注5 课程课程号,课程名称,开课系部,课程简介6 学生学号,姓名,性别,班级,出生日期,籍贯,民族,政治面貌,身份证号,高考成绩,档案编号7 班级班级号,班级名称,专业,人数8 成绩学号,课程号,成绩,备注(缓考,补考,重修等)9 考试安排课程号,教程号,学生,时间10 评教/评学班级,教师,课程,评教分数,评学分数11 选课学号,课程号,教师号12 排课课程号,教师号,教室号,时间13 开课计划序号,专业代号,课程号,学期,学时,学分,课程性质(选修,必修),教学方式(普通教学,多媒体教学,户外教学等)要求:1.建立教务系统的需求分析模型,并声称需求分析报告;2.建立教务系统的业务流程模型;3.建立教务系统的概念数据模型;4.建立教务系统的物理数据模型(创建数据库,生成数据库);5.通过教务系统的物理数据模型生成面向对象模型(OOM),生成对应的JA V A或者C#代码;实验一里面可以用Adobe Dreamweaver或者VisualStudio2008或者以上版本描述相关的前台界面;实验二: 用以上的工具构建相关的后台界面;实验三: 用PowerDesigner设计该系统的需求分析和业务业务流程模型(BPM)实验四: 用PowerDesigner设计该系统的CDM和PDM实验五: 用PowerDesigner 设计该系统的OOM和对应的JA V A 或C#代码.附录1:实验报告模板实验一软件体系结构设计(一)某系统C/S风格客户端软件体系结构设计实验课程名:软件体系结构专业班级:学号:姓名:实验时间:实验地点:指导教师:说明:1.验证性实验报告填写好后,以学生的学号+实验项目名作为该word文件名保存,例如某学生学号为20080001,姓名为某某,本次实验名称是:实验1 线性表的实验,则本次实验报告的保存文件名为:01某某实验1.doc。
计算机操作系统体系结构实验报告

操作系统实验报告实验目的:随着操作系统应用领域的扩大,以及操作系统硬件平台的多样化,操作系统的体系结构和开发方式都在不断更新,目前通用机上常见操作系统的体系结构有如下几种:模块组合结构、层次结构、虚拟机结构和微内核结构。
为了更好的了解计算机操作系统体系结构,以及linux 的体系结构,特作此报告。
实验内容:计算机操作系统体系结构一、模块组合结构操作系统刚开始发展时是以建立一个简单的小系统为目标来实现的,但是为了满足其他需求又陆续加入一些新的功能,其结构渐渐变得复杂而无法掌握。
以前我们使用的MS-DOS 就是这种结构最典型的例子。
这种操作系统是一个有多种功能的系统程序,也可以看成是一个大的可执行体,即整个操作系统是一些过程的集合。
系统中的每一个过程模块根据它们要完成的功能进行划分,然后按照一定的结构方式组合起来,协同完成整个系统的功能。
如图1所示:在模块组合结构中,没有一致的系统调用界面,模块之间通过对外提供的接口传递信息,模块内部实现隐藏的程序单元,使其对其它过程模块来说是透明的。
但是,随着功能的增加,模块组合结构变得越来越复杂而难以控制,模块间不加控制地相互调用和转移,以及信息传递方式的随意性,使系统存在一定隐患。
二、层次结构为了弥补模块组合结构中模块间调用存在的固有不足之处,就必须减少模块间毫无规则的相互调用、相互依赖的关系,尤其要清除模块间的循环调用。
从这一点出发,层次结构的设计采用了高层建筑结构的理念,将操作系统或软件系统中的全部构成模块进行分类:将基础的模块放在基层(或称底层、一层),在此基础上,再将某些模块放在二层,二层的模块在基础模块提供的环境中工作;它只能调用基层的模块为其工作,反之不行。
严格的层次结构,第N+l层只能在N层模块提供的基础上建立,只能在N层提供的环境中工作,也只能向N 层的模块发调用请求。
在采用层次结构的操作系统中,各个模块都有相对固定的位置、相对固定的层次。
处在同一层次的各模块,其相对位置的概念可以不非常明确。
软件设计模式与体系结构实验报告

软件设计模式与体系结构实验报告在软件开发的世界里,设计模式和体系结构就像调味料,给整个开发过程增添了无限风味。
你知道的,写代码有时候就像做饭,少了调料,味道肯定不行。
先说说设计模式吧,这可真是个绝佳的主意。
想象一下,咱们每次做个项目的时候,脑袋里总是要有个框架,知道怎么来、怎么走,这时候设计模式就像一个好老师,教我们如何优雅地解决常见问题。
说到这里,大家听说过单例模式吗?这个模式就像是“独一无二”的存在,确保你在整个应用中只有一个实例,这样可避免浪费资源,避免重复。
嘿,你敢想象要是你的冰箱里塞满了牛奶,那可真是够烦人的。
再聊聊策略模式,真是聪明的家伙。
就好比你在吃火锅,想换个口味,可以随时调换蘸料,策略模式就是给你提供了这种灵活性。
无论是要排序、计算还是处理数据,你都可以轻松切换。
这就像在生活中,不同的情况要有不同的应对方式。
生活本来就充满变化,代码也是一样嘛。
想到这里,我觉得代码和生活一样,得学会随机应变。
然后说到观察者模式,这可是个有趣的故事。
想象一下,你在看球赛,朋友们都在旁边紧盯着屏幕,眼神不离。
这就是观察者模式的精髓:一个对象变化,所有观察它的人都立刻得到通知,哇,这个效率可真高。
就像你在朋友圈发了条动态,大家立刻围过来评论点赞,简直不要太快。
这种模式让我们在编程中也能保持同步,绝对是个“跟得上”的好帮手。
再说到体系结构,嘿,这可是大事儿。
体系结构就像大楼的蓝图,如果没有好的设计,后面的施工就容易出问题。
想想看,你有没有见过那些盖得歪歪扭扭的楼?那可真是惨不忍睹。
一个好的体系结构可以让整个系统稳定运行,避免后期的各种麻烦,就像一部精密的机器,每个部分都得协同工作。
分层架构、微服务架构,这些概念都是在告诉我们,要有条理,别让代码变成“杂货铺”。
说到微服务架构,这可真是个炫酷的概念。
就好像把大块头的火锅分成一个个小锅,你想吃啥就来啥,各种口味应有尽有。
这种架构让开发变得灵活,团队可以独立开发,互不影响。
体系结构实验报告

|课程实验报告软件系统结构?\]专业软件工程学生姓名刘辉软件151班级|学号17指导老师孙莉*实验一C/S结构应用设计(1)一、实验目的设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。
学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。
本次实验目的:(1)熟悉并掌握二层C/S软件体系结构的相关知识;(2)掌握二层C/S结构应用系统的分析和设计;(3)掌握一种开发二层C/S结构应用系统的技术线路;:(4)实际开发出一个简单的基于二层C/S结构的应用实例——个人通讯录管理系统。
要求:(1)需要预先掌握SQL server 2000数据库基本操作、(用C#语言)编程技术和多层C/S软件体系结构的概念;(2)进行二层C/S结构应用系统的分析和设计,在实验报告中写出个人通讯录管理系统的设计方案;(3)在SQL server 2000数据库系统中建立数据库并输入数据;(4)在中用C#语言编写表现层(UI)程序;(5)在中用C#语言编写业务逻辑层(BLL)程序;:(6)完成系统调试,得出正确的实验结果;(7)做完实验后写出本实验的实验报告。
二、实验环境奔腾以上计算机,装有SQL Server 2000数据库系统和Visual Studio 2000软件。
三、实验内容1、分别采用二层C/S结构和多层C/S结构实现个人通讯录系统。
该系统的设计目标是能够轻松地管理个人的联系人信息,包括添加、修改和删除操作。
联系人信息包括姓名、住址、电话。
整个系统的功能图如下图所示:分析系统需求,完成软件体系结构设计及模块划分、数据库设计,采用Visual C#实现系统功能!四、实验操作过程在电脑上安装好Microsoft Visual Studio 2010 用于系统的开发需要实际设计开发出一个简单的基于两层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下:1、在SQL Server 2000中建立数据库Contact,建立表friend。
计算机网络体系结构实验报告-存储器实验

存储器实验报告一、实验箱实验部分1.实验目的:(1)理解随机静态存储的原理(2)熟悉实验箱的静态存储操作以及电路的搭建方式2.实验设备:TD-CMA实验箱3.实验过程(1)按照电路图连接好电路(2)进行实验操作:预备操作①时序与操作台单元的KK1、KK3置“运行”档,KK2置为“单步”档;②将CON单元的IOR开关置1(IN单元无输出,避免总线竞争),然后再打开电源开关,如果听到有长鸣的“嘀”声,说明总线竞争,需要立即关闭电源,检查连线;③按动CON单元CLR按钮,将运算器当前数据(例如:寄存器A、B及FC、FZ)清零;设置存储地址①关闭存储器读写数据信号:WR、RD;②设置数据送到存储器地址线:IOR置0;③IN单元D7…D0形成一个8位二进制数地址,设置地址输入控制信号LDAR,将选取一个指定的地址单元,按动ST产生T3脉冲,指定地址被放入地址寄存器(AR)中;向(从)指定的地址单元存(取)数据①存即写数据:IN单元D7…D0形成一个数据,设置数据写入控制信号IOR=1、WR=1、RD=0,按动ST产生T3脉冲,数据存入指定的存储单元中;②取即读数据:设置数据写入控制信号IOR=1、WR=0、RD=1,数据总线上的数据即为从指定的存储单元中取出的数据。
4.结果描述:(1)将8位数据存入指定的地址后,将WR置零,RD置1,可以看到数据显示。
(2)地址和数据的区别:地址和数据都为二进制数据,地址是了数据放置的位置,根据选择不同的地址可以看到存储在不同地址的不同数据。
(3)读写逻辑的转换过程:先选取地址,设定数据存入该地址,再选取地址读取数据、(4)位扩展和字扩展原理图如下:二、存储器仿真实验部分1.实验目的:(1) 理解存储器的功能。
(2) 掌握运用Proteus 软件设计ROM 和RAM 的方法。
(3) 基于Proteus 仿真工具掌握存储器与总线的连接及存储器地址空间映射的原理。
(4) 通过8 位字长的存储器电路,实现对ROM 和RAM 存储器的数据读写操作。
体系结构实验报告-hbu

实验一流水线中的相关实验目的1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点;2. 加深对计算机流水线基本概念的理解;3. 进一步了解DLX基本流水线各段的功能以及基本操作;4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响;5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。
实验平台WinDLX模拟器实验内容和步骤(做实验前请先认真阅读WinDLX教程)1.用WinDLX模拟器执行下列三个程序(任选一个):●求阶乘程序fact.s●求最大公倍数程序gcm.s●求素数程序prim.s分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。
熟练掌握WinDLX的操作和使用。
注意:fact.s中调用了input.s中的输入子程序。
load程序时,要两个程序一起装入(都select后再点击load)。
gcm.s也是如此。
2.用WinDLX运行程序structure_d.s,通过模拟:●找出存在结构相关的指令对以及导致结构相关的部件;●记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;●论述结构相关对CPU性能的影响,讨论解决结构相关的方法。
3.在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。
记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
4.在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。
重复上述3中的工作,并计算采用定向技术后性能提高的倍数。
预备知识1. WinDLXWinDLX模拟器是一个图形化、交互式的DLX流水线模拟器,能够演示DLX流水线是如何工作的。
计算机体系结构实验报告

ECUST《计算机体系结构》实验报告专业计算机班级计071姓名xxx学号xxx成绩指导教师xxx计算机实验教学中心实验一一、实验名称FIFO先进先出存储器实验实验地点一教211 实验日期2010-5-25二、实验目的掌握FIFO 存储器的工作特性和读写方法。
三、实验设备PC 机一台,TD-CMX 实验系统一套。
四、实验原理本实验用FPGA 芯片来实现一个简单的8 位×4 的FIFO,本实验用FPGA 芯片来实现一个简单的8 位×4 的FIFO,器件的接口信号如图3-2-1,内部逻辑图如下图3-2-2。
其各信号的功能为:EMPTY:FIFO 存储器空标志,高电平有效。
FULL:FIFO 存储器满标志,高电平有效。
RST:清FIFO 存储器为空。
FIFOWR:FIFO 存储器写入信号,低电平有效。
FIFORD:FIFO 存储器读信号,低电平有效。
ID0~ID7:FIFO 存储器输入数据线。
OD0~OD7:FIFO 存储器输出数据线。
内部逻辑图设计的顶层原理图如下:五、实验操作及运行结果(1)按照上述功能要求及管脚说明,进行FPGA 芯片设计,其引脚电路图如图3-2-4 所示。
(2)关闭电源,按图3-2-5 实验连线图接线。
确保接线正确后打开实验系统的电源。
(3)编辑、编译所设计的程序,打开实验系统电源,将下载电缆插入FPGA 单元的JTAG 口,把生成的SOF 文件下载到FPGA 单元中去。
(4)接线图中B03 和B04 是FIFO 空状态、满状态指示信号,分别接到扩展单元指示灯E0、E1 上,用来反映FIFO 当前的状态。
注意:系统总清后FIFO 输出的数据是无效的,因为当FIFO 总清后,读计数器的输出被清零,此时多路开关选择输出C0 中的数据,而C0 中的数据是不确定的。
当第一次对FIFO 进行写操作后,FIFO 输出的数据开始有效。
简单的说,空标志位无效时,FIFO 的输出有效。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京邮电大学实验报告课程名称:高级计算机系统结构学号:2015140454姓名:罗一皓实验二指令流水线相关性分析一.实验类别:验证试验二.实验目的:通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。
三.实验学时:4四.实验人数:1五.实验设备环境:WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。
CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。
模拟器还提供了对流水线操作的统计功能。
该模拟器对理解流水线和RISC处理器的特点很有帮助。
六.实验原理:指令流水线中主要有结构相关、数据相关、控制相关。
相关影响流水线性能。
结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时,将产生“结构相关”。
数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起“数据相关”。
控制相关:由条件指令引起的相关。
七.实验内容和要求:使用WinDLX模拟器,对求阶乘程序Fact.s做分析八.实验步骤:(1)观察程序中出现的数据/控制/结构相关。
指出程序中出现上述现象的指令组合。
数据相关:在第24个周期时,在Clock Cycle Diagram 中有橙黄色的R-Stall,点开之后,我们发现有相关指令组合:lbu r3,0x0(r2)seqi r5,r3,0xa控制相关:在第4个时钟周期中,第一条命令正在MEM段,在第二条命令在intEXcellent 段,第四条命令在IF段。
而第三条命令指示为“aborted”。
其原因是:在第二条命令(jal)是无条件分支指令,但只有在第三个时钟周期,jal指令被译码后才知道,这时,下一条命令movi2fp已经取出,但须执行的下一条命令在另一个地址处,因而,movi2fp的执行应被取消,在流水线中留下气泡。
此处发生了控制相关。
相关的指令组合:addi r1,r0,0x1000jal InputUnsignedmovi2fp f10,r1sw SaveR2[r0],r2结构相关:在这个流水线图中可以发现点开之后,会发现addi r2,r2,0x1 该指令在它面前的一条指令add r1,r1,r3 发生了结构相关。
由于上一条指令由于数据相关需要停4个周期,在ID段后停滞,不能进入intEX段,故addi r2,r2,0x1 就不能进入ID,译码部分已经被占用。
故发生了结构相关。
相关指令:add r1,r1,r3addi r2,r2,0x1(2)考察增加浮点运算部件对性能的影响。
N=4时,浮点运算部件均为1时:N=4,浮点运算器都变为2时:比较个数据,发现没有发生变化。
对于该程序,指令组合涉及不到多个浮点器的结构相关。
(3)考察增加forward部件对性能的影响。
在载入fact.s和input.s之后,不设置任何断点运行。
①不采用重新定向技术,我们得到② 采用定向技术,我们得到的结果是:从上面的数据我们可以看出定向的作用:增加forward 部件后的109个时钟周期比增加前的137个少了28个时钟周期。
增加forward 部件使得RAW 相关变为15个,比增加前的41个减少了26个,RAW 相关的比例从总时钟周期的29.93%减为13.76%。
增加forward 部件使得控制相关比例增加了,由原来占总时钟周期的8.03%增至10.09%。
总之,使用forward 部件后,总的时钟周期减少,数据相关减少,流水线的性能得到一定的改善。
(4)观察转移指令在转移成功和转移不成功时候的流水线开销。
转移成功的情况:在一条由4个流水段组成的流水线中,第I-1条指令要等到第I+2条指令进入流水线时才能形成条件码。
如果形成的条件码是“转移不成功”的,则猜测正确,流水线的吞吐率和效率没有降低;如果形成的条件码是“转移成功”的,则猜测错误,必须沿下面分支方向进行。
此时,首先作废流水线已经执行的第I+1,I+2条指令,然后再从分支点开始,执行第P,P+1,…各条指令。
在这种情况下,每执行一条条件转移指令,一条4段流水线就有2个流水段被浪费。
吞吐率下降为:D=3pq/1+3pq九.实验总结:本次实验,通过模拟和分析对N的阶乘的程序,根据pipeline图和clock图和相关的数据对数据相关,结构相关,控制相关进行了逐个的分析。
分析结果之后,对于老师上课讲到的内容有了更加形象化的理解,对于学习挤塑机体系结构大有帮助。
实验三 DLX处理器程序设计一、实验目的学习使用DLX 汇编语言编程,进一步分析相关现象。
二、实验设备环境DLX汇编语言环境三、实验内容和要求自编一段汇编代码,完成一维向量加法运算,并输出结果。
观察程序中出现的数据/控制/结构相关。
(注:使用一维数组表示一维向量。
)四、代码清单及注释*双精度浮点加法求和设计*1、代码及注释.data;***store the vectorReadBuffer1: .space 120 ;store vector in byteReadPar1: .word 0,ReadBuffer1,120ReadBuffer2: .space 120 ;store vector in byteReadPar2: .word 0,ReadBuffer2,120;***msg for outputPrompt0: .asciiz "Add two vector:\n\n"Prompt1: .asciiz "vector1:(element seperated by space)\n"Prompt2: .asciiz "vector2:(element seperated by space)\n"Prompt3: .asciiz "vectorSum: ";*** Data for Printf-TrapPrintfFormat: .asciiz "%f " ;used to output the result.align 4PrintfPar: .word PrintfFormatPrintfValue: .space 8PrintfPar2: .space 4.text.global mainmain:;*** Prompt the msgaddi r1,r0,Prompt0sw PrintfPar2,r1addi r14,r0,PrintfPar2trap 5;***get vector1addi r1,r0,Prompt1sw PrintfPar2,r1addi r14,r0,PrintfPar2trap 5;*** call Trap-3 to read line vector1addi r14,r0,ReadPar1trap 3;***get vector2addi r1,r0,Prompt2sw PrintfPar2,r1addi r14,r0,PrintfPar2trap 5;*** call Trap-3 to read line vector2addi r14,r0,ReadPar2trap 3;output the result msgaddi r1,r0,Prompt3sw PrintfPar2,r1addi r14,r0,PrintfPar2trap 5;*******************************************************;calculate the vector sum one by one;*******************************************************;*****use f2 store vector1:f 20 store vector2;*************************************************;r1~r10,f1~f9 for vector1;r11~r19,f11~f19 for vector2;*************************************************;*****change the byte into decimal;*** determine valueaddi r2,r0,ReadBuffer1 ;Let r2 point to the first byte of vector1addi r12,r0,ReadBuffer2 ;Let r12 point to the first byte of vector2BG:;******initial the registeraddi r1,r0,0addi r11,r0,0addi r8,r0,10 ;Decimal systemaddi r18,r0,10 ;Decimal systemaddi r6,r0,1 ;the decimal fraction partaddi r16,r0,1addi r22,r0,0 ;movi2fp f1,r22 ;zeromovi2fp f11,r22movf f3,f0 ;zeromovf f13,f0Loop1: ;*** reads integer part of vector1lbu r3,0(r2)seqi r5,r3,10bnez r5,Loop2seqi r5,r3,32bnez r5,Loop2seqi r5,r3,46 ;.-> read the decimal fraction partbnez r5,Fraction1subi r3,r3,48 ;char->integermultu r1,r1,r8 ;Shift decimaladd r1,r1,r3addi r2,r2,1 ;increment pointerj Loop1Fraction1: ;*****read the decimal part of vector2addi r2,r2,1 ;increment pointerlbu r3,0(r2)seqi r5,r3,10 ;LF->The element in vector1 is gotbnez r5,Loop2seqi r5,r3,32 ;Space->The element in vector1 is gotbnez r5,Loop2subi r3,r3,48multu r6,r6,r8movi2fp f6,r6movi2fp f3,r3divf f3,f3,f6 ;f3 change to corresponding decimaladdf f1,f1,f3 ;store the decimal part in f1j Fraction1Loop2: ;*** reads integer part of vector1;******movi2fp f5,r1cvti2f f3,f5cvtf2d f2,f3cvtf2d f4,f1addd f2,f2,f4 ;vector1 is in f2lbu r13,0(r12)seqi r15,r13,10bnez r15,Finish ;LF->Finishedseqi r15,r13,32bnez r15,SUM ;The element in vector2 is gotseqi r15,r13,46 ;.-> read the decimal fraction partbnez r15,Fraction2subi r13,r13,48 ;char->integermultu r11,r11,r18 ;Shift decimaladd r11,r11,r13addi r12,r12,1 ;increment pointerj Loop2Fraction2: ;*****read the decimal part of vector2addi r12,r12,1 ;increment pointerlbu r13,0(r12)seqi r15,r13,10 ;LF->EXITbnez r15,Finishseqi r15,r13,32 ;Spacebnez r15,SUMsubi r13,r13,48multu r16,r16,r18movi2fp f16,r16movi2fp f13,r13divf f13,f13,f16 ;f3 change to corresponding decimaladdf f11,f11,f13 ;store the decimal part in f1j Fraction2SUM: ;calculate the sum of elements<vector1,vector2>movi2fp f15,r11cvti2f f13,f15cvtf2d f12,f13cvtf2d f14,f11addd f12,f12,f14 ;vector2 is in f12;increment pointeraddi r2,r2,1 ;increment pointeraddi r12,r12,1 ;increment pointeraddd f2,f2,f12 ;get and output the sumsd PrintfValue,f2addi r14,r0,PrintfPartrap 5j BG ;ready to calculate the next pairFinish: ;***store the final result in f2.restore old register contents movi2fp f15,r11cvti2f f15,f13cvtf2d f12,f13cvtf2d f14,f11addd f12,f12,f14 ;vector2 is in f12addd f2,f2,f12 ;get and output the last sumsd PrintfValue,f2addi r14,r0,PrintfPartrap 5trap 0五、程序相关性分析结果相关的情况如下:该程序执行过程中仅有控制相关、结构相关、数据相关。