中南民族大学 计算机组成原理实验报告,计算机系统结构实验报告(中南民族大学)...

《计算机系统结构实验报告(中南民族大学)》由会员分享,可在线阅读,更多相关《计算机系统结构实验报告(中南民族大学)(19页珍藏版)》请在人人文库网上搜索。

1、院 系:专 业:年 级:课程名称:计算机系统结构学 号:姓 名:指导教师:年级班级学号专业计算机科学与技术姓名题目 名称矩阵相乘题目内容1.掌握DLX的流水线运行分析,包括流水线单步执行、每个流水段功能、理解流 水线停顿、流水线建立和排空、定向技术。掌握调整DLX参数,如内存大小、功能单元个数、延迟,分析对程序运行的影响。2.编写计算矩阵相乘的程序,掌握调试方法。实 验 结 果 与 分 析图一.运行结果(使用4睐控制输出的齐)图二.寄存器图三.流水线实验结果与分析实 验 结 果 与 分 析图四.内存代码 冬五.内存查看% 柠厂 1亡X实验结果与分析ihmiKDD0a000D0D0DaoUtxU。

2、JOOIOLz00-JuaLU0D00加厂时JO吃00D1010D0000rdxOOOU-JU00000Q000s000oxooDanojoD0D00a0D00Da0OtxOOOOOOE:00:00.00jD0t(hcOOCaiOaiD0DJQa(D00)DQciImOODODOUD00narnD1Dn0UUtOJOU. JaUD0-D0aDu0D0DOxOOiOODOfrD081聲;J269307252432210181935307251332Q:d91934X32JU7L50032扭l4Jb12U022J21?仙讥LoaplBL3B47307?d?21025aE25C1103721E213。

3、6=iE12S2020】8 口 l+lalc灿440324002064420174(16:)的书t4-1036206仁4l.oapii+3KE17I0B5B2SB110438142BSi3071S5E-0G.U033Mf1?-|NR控制行控制列R6=0结束R仁f6,R1=R位置,当前图十二.算法设计图实 验 结 果 与 分 析实验结果分析:本次实验中,学会使用DLX软件,对于其汇编代码有一个整体上的认 识。具体有如下几个小点:(1熟悉DLX的仿真硬件系统结构,包括寄存器、计算功能单元、指令系 统、流水线。(2)熟悉DLX仿真软件的功能,包括主要的功能界面。(3)掌握DLX应用程序的编程和调试技。

4、术。(4)掌握DLX的流水线运行分析,包括流水线单步执行、每个流水段功能、 理解流水线停顿、流水线建立和排空、疋向技术。(5)掌握调整DLX参数,如内存大小、功能单兀个数、延迟,分析对程序 运行的影响通过编写矩阵相乘来检验掌握的程度, 对与在其中出现的问题进行分 析,和解决。能通过单步执行来调试程序,找出出错点和逻辑错误点,并加 以改正。在实验中,几个重点难点。首先是从主程序中跳 InputUnsigned函数 中,对于参数的传递要有一个清楚的认识。其次是,对于系统自陷 trap要 有一个认识,如trap 0是结束、trap 3是输入和trap 5是输出,当然也有 传递的参数也是重点分别是r1。

5、和r14。对于向量的使用也有一个初步的认识,当使用向量时,程序的流水线 明显比不适用向量快的多,结果的截图也很清楚的说明了这个问题。.data;* Prompts for in put;输入提示部分A:.space 64B:.space 64C:.space 64Prompt1:.asciiz输入A矩阵的行:Prompt2:.asciiz输入A矩阵的列和B矩阵的列:Prompt3: .asciizII输入B矩阵的列.11Prompt4:.asciizII输入A矩阵兀素r:Prompt5:.asciizII输入A矩阵兀素.11;* Data for prin tf-Trap;输出数据设置部分Pr。

6、in tfFormat:.asciiz%d .alig n2Prin tfPar:.wordPrin tfFormatPrin tfValue:.space4Prin tfFormat1:.asciizn .alig n2程Prin tfPar1: .wordPrin tfFormat1序Prin tfFormat 1: .asciizn代码.alig n2Prin tfPar_1:.wordPrin tfFormat_1Prin tfValue1:.space4Prin tfFormat2:.asciiz输出A矩阵:n .alig n2Prin tfPar2: .wordPrin tfFor。

7、mat2Prin tfValue2:.space4Prin tfFormat3:.asciiz输出B矩阵:n .alig n2Prin tfPar3: .wordPrin tfFormat3Prin tfValue3:.space4Prin tfFormat4:.asciiz输出C矩阵:n .alig n2Prin tfPar4: .wordPrin tfFormat4Prin tfValue4:.space4.text.global mai nmain:addir1,rO,Prompt1jalIn put Un sig nedmovi2fp f1,r1;矩阵A的行数addir1,rO,Pro。

8、mpt2jalIn put Un sig nedmovi2fp f2,r1;矩阵A的列数,矩阵B的行数addir1,rO,Prompt3jalIn put Un sig nedmovi2fp f3,r1;矩阵B的列数movfp2i r8,f1movfp2i r6,f2multur4,r6,r8;总的矩阵A的兀素个数r4addir2,r10,A ;指向A的首地址loopl:addr1,rO,Prompt4 ;分别读入矩阵A的兀素值jalIn put Un sig nedsb0(r2),r1;储存子节,读入兀素程addir2,r2,1;兀素个数加一程subr4,r4,1;总的矩阵兀素个数r4减一丿。

9、予 代bnezr4,loop1;r4不为0时跳转重复输入码addir10,r0,0;分别读出矩阵A的元素值addir2,r10,A;指向A的首地址swPrin tfValue2,r1addi r14,rO,Pri ntfPar2trap5loopA:lbur1,0(r2)swPrin tfValue,r1addir14,rO,Pri ntfPar ;换行trap5addir2,r2,1;兀素个数加一subr6,r6,1;矩阵A的列数r6减一beqzr6,outputA ;矩阵A的列数r6等于0时跳到outputAjloopA;否则继续loopAoutputA:swPrin tfValue1,r。

10、1addi r14,rO,Pri ntfPar1trap5subr8,r8,1;矩阵A的行数r8减一beqzr8,co un tiuB ;矩阵A的仃数r8等于0时跳到countiuBmovfp2i r6,f2jloopA;否则继续loopAcoun tiuBaddi r14,rO,Pri ntfPar_1trap5movfp2i r6,f2movfp2i r12,f3addir10,r0,0multur4,r6,r12;总的矩阵B的兀素个数r4addir2,r10,B;指向B的首地址Ioop2:addir1,rO,Prompt5 ;分别读入矩阵B的兀素值jalIn put Un sig ned。

11、sb0(r2),r1;储存子节,读入兀素addir2,r2,1;兀素个数加一subr4,r4,1;总的矩阵兀素个数r4减一bnezr4,loop2;r4不为0时跳转重复输入程序addir10,r0,0;分别读出矩阵B的元素值丿序代addir2,r10,B;指向B的首地址代swPrin tfValue3,r1码addi r14,rO,Pri ntfPar3trap5loopB:lbur1,0(r2)swPrin tfValue,r1addir14,rO,Pri ntfPar ;换行trap5addir2,r2,1;兀素个数加一subr12,r12,1;矩阵B的列数r12减一beqzr12,out。

12、putB ;矩阵B的列数r12等于0时跳到outputBjloopB;否则继续loopBoutputB:swPrin tfValue1,r1addir14,rO,Pri ntfPar1trap5subr6,r6,1;矩阵B的行数r6减一beqzr6,co un tiue ;矩阵B的仃数r6等于0时跳到countiumovfp2i r12,f3jloopB ;否则继续loopBcoun tiue:addir11,r0,0;temp,表示矩阵C的一个兀素的累加器addir4,r0,0r初始化矩阵C的偏移量addir5,r0,0矩阵A当前被扫描的行号line:movi2fp f4,r55判断是否扫描。

13、完Itff4,f1;f4f1跳转(矩阵A的行是否扫描完)bfpffin ish;是,则跳转结束程序addir6,r0,0;col,r6表示当前B矩阵的列号colu mn:movi2fp f4,r6Itff4,f3;col(f3 ) f4,矩阵B的列是否扫描完bfpfleveladd5是,则跳到矩阵A的下一行movfp2i r1,f2multur10,r5,r1;i-l*n,r10表示矩阵A当前行的第一个兀素的索引addir7,r6,0;mov col to j(矩阵B某一列的某个兀素的索引)addir11,r0,0;temp=0,矩阵C当前的兀素值的初始化程 序 代 码addir9,r5,1;。

14、r9-l+1,r9代表矩阵A当前数组中的实际行号(r5的初值为0)movfp2i r1,f2;f2是矩阵A的列数multur9,r1,r9;p-n*(l+1),r9代表矩阵A当前行中最后一个兀素在数组中的索引calculatemovi2fp f4,r10movi2fp f9,r9ltff4,f9;comparei to pz (判断是否计算到当前仃的最后一个兀素)bfpfasig n ;当前行列相乘完毕,得出结果矩阵C的一个兀素(跳转赋值)addir1,r10,A5取矩阵A当前兀素在内存区域中的地址lbur2,0(r1)5从r1所指向的内存单兀中取出矩阵A当前的兀素暂存在r2addir1,r7。

15、,B ;取矩阵B当前兀素在内存区域中的地址lbur3,0(r1)5从r1所指向的内存单兀中取出矩阵B当前的兀素暂存在r3multur1,r2,r3;temp1-Ai+Bjaddr11,r11,r1;temp-temp+temp1,累加到累加器addir10,r10,1;i+,计算矩阵A当前行的下个兀素的索引movfp2i r1,f3addr7,r7,r1 ;j-j+k,计算矩阵B的当前列的下个兀素的索引jcalculateasig n:addir1,r4,C 丁1表示矩阵C当前的地址sb0(r1),r11;store C,把新计算出来的兀素放入当前内存单兀addir4,r4,1;赋值完一个兀素。

16、,偏移量自增1addir6,r6,1;矩阵B的当前列数自增1jcolu mn;矩阵B新的一列开始leveladd:addir5,r5,1;矩阵A当前行自增1jline;矩阵A新的一行开始fini sh:addir10,r0,0;分别读出矩阵C的兀素值movfp2i r8,f1movfp2i r12,f3addir2,r10,CswPrin tfValue4,r1addi r14,rO,Pri ntfPar_1程trap5序addir14,rO,Pri ntfPar4代trap5码Ioop3:Ibur1,0(r2)swPrin tfValue,r1addir14,rO,Pri ntfPartrap5addir2,r2,1subr12,r12,1beqzr12,outputCjloop3outputC:swPrin tfValue1,r1addir14,rO,Pri ntfPar1trap5subr8,r8,1beqzr8,e ndmovfp2i r12,f3jloop3;* endend: trap0心 得 体 会成绩评教师签名:疋年 月日。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
试验1. 实验要求 (1)熟悉javac、java等命令的使用,熟悉使用Java编辑器。 (2)编写一个Java Application程序,接受用户从键盘输入的10个整数,比较并输出其的最大值和最小值。要求程序能对非法数据进行处理。 (3)编写一个Java Application程序,从键盘读取年份,输出该年份是否为闰年。要求程序能对非法数据进行处理。 实验2 编写一个复数类ComplexNumber,其包括实例变量real、image,方法如下: 1)构造方法 ComplexNumber(double a,double b) 2) ComplexNumber add(ComplexNumber x) //当前复数对象与另一复数对象进行复数的加法运算,返回一新的复数对象 3) ComplexNumber sub(ComplexNumber x) //当前复数对象与另一复数对象进行复数的减法运算,返回一新的复数对象 4)double getReal () //获取复数对象的实部 5)double getImage () //获取复数对象的虚部 6)void show( ) //按照实部+虚部i(如10+8i)的形式显示复数对象的值 7)String toString()//返回复数对象对应的串(如4+7i) (2)编写一个主类,定义并实例化两个复数对象,输出这两个复数对象的值,然后进行复数的加法和减法运算,输出其运算结果(对象)的值。 实验3 编写Application程序实现小型公司的工资管理。该公司主要有4类人员:经理(Manager)、兼职技术人员(Technician)、销售员(Salesman)和销售经理(SalesManager)。要求记录这些人员的编号、姓名和月工资,计算他们的月工资并显示全部信息。月工资计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;销售人员按该当月销售额的4%提成;销售经理既拿固定月工资也领取销售提成,固定月工资为5000元,销售提成为所管辖部门当月销售总额的0.5%。 实验4 编写一个简单的文本编辑程序。 (1)要求在容器Frame/JFrame放置一个菜单条(MenuBar)。该菜单条至少包括2个菜单(Menu):文件(F)和帮助(H)。文件菜单至少包括以下菜单项:新建、打开、关闭、保存、另存为、退出。帮助菜单包括以下菜单项:联系我们、关于。 (2)提供快捷工具栏,包括新建、打开及保存等功能(这部分根据自己的情况选做)。如单击保存按钮能将TextArea或JTextArea的文本保存到指定的文件。 提示:用java.awt.TextArea或javax.swing.JTextArea作为文本编辑窗口,用java.io.FileWriter写文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值