您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 计算机体系结构实验报告——实验三
计算机体系结构实验报告——实验三1.实验目的:通过实验,熟练掌握WINDLX的操作方法,特别注意在单步执行WinDLX程序中,流水线中指令的节拍数。2.实验内容:(1)用WinDLX模拟器执行求素数程序prim.s。这个程序计算若干个整数的素数。(2)单步执行两轮程序,求出素数2和3。(3)在执行程序过程中,注意体验单步执行除法和乘法指令的节拍数,并和主菜单configuration/floatingpointslages中的各指令执行拍数进行比较。3.实验程序求素数程序prim.s。;***********WINDLXExp.2:Generateprimenumbertable*************;-------------------------------------------------------------------;Programbeginsatsymbolmain;generatesatablewiththefirst'Count'primenumbersfrom'Table';-------------------------------------------------------------------.data;***sizeoftable.globalCountCount:.word10;10的地址值.globalTableTable:.spaceCount*4;给Table保留Count*4个字节.text.globalmainmain:;***Initializationaddir1,r0,0;IndexinTable;0+0地址值送R1addir2,r0,2;Currentvalue;0+2地址值送R2;***Determine,ifR2canbedividedbyavalueintableNextValue:addir3,r0,0;HelpindexinTable;0+0地址值送R3Loop:seqr4,r1,r3;EndofTable?;IFr1==r3?Yesr4=1;elser4=0;bnezr4,IsPrim;R2isaprimenumberr4!=0,excuteIsPrimlwr5,Table(R3)divur6,r2,r5multur7,r6,r5subur8,r2,r7beqzr8,IsNoPrim;ifr8==0,excuteIsNoPrimaddir3,r3,4;r3+4-r3jLoopIsPrim:;***WritevalueintoTableandincrementindexswTable(r1),r2addir1,r1,4;***'Count'reached?lwr9,Countsrlir10,r1,2sger11,r10,r9bnezr11,FinishIsNoPrim:;***Checknextvalueaddir2,r2,1;incrementR2jNextValueFinish:;***endtrap04、实验流程图5、实验步骤和结果单步执行过程中寄存器的变化情况(1)获取素数2:由于R1=R3=0,所以R2=2为素数,将2送入Table(0)中。(2)获取素数3。执行步骤以及对应的寄存器的变化情况:1R2=2isPRim,R4=1;2R1+4-R1;310-R9,R1/4-R10,R2+1-R2;4R1!=R3,R4=0;5Table(R3)-R5;6R2/R5-R6;7R6*R5-R7;8R2-R7-R8;9R3+4-R3;10R2=3isPRim,R4=1;11R2=3-Table(4),R1+4-R1;(3)乘法指令的节拍数为:5(-9—-5);除法指令的节拍数为:19(-28—-10);主菜单configuration/floatingpointslages中的各指令执行拍数:乘法为5;除法为19。正好与上述的执行过程一致。(4)数据相关和结构相关:数据相关:Addir1,r0,0x0Addir2,r0,0x2Addir3,r0,0x0Seqr4,r1,r3Bnezr4,lsprimLwr5,table(r3)Divur6,r2,r5Multur7,r6,r5Subur8,r2,r7Beqzr8,lsnoprimAddir3,r3,0x4JloopSwtable(r1),r2Addir1,r1,0x4Lwr9,$data(r0)Srlir10,r1,2Sger11,r10,r9Bnezr11,finishAddir2,r2,0x1JnextvalueTrap0x0nop结构相关:Instructions/cyclesSwtable(r1),r2Addir1,r1,0x4Lwr9,$data(r0)Srlir10,r1,2Sger11,r10,r9Bnezr11,finishAddir2,r2,0x1Trap0x0nop6、实验总结通过本次实验的学习,我充分理解了寄存器的变化情况一步一步反映着程序的进行情况。我基本熟练掌握windlx的操作和使用,对程序在流水线中的执行情况基本了解,观察到了cpu中寄存器和存储器的内容变化,清晰掌握数据相关和结构相关的意义。同时执行过程中的乘除法节拍也是通过Configuration,我们自己进行设定的。通过这些数据,我们可以看到数据相关以及结构相关的一些情况。本次实验使我对程序执行过程中,各个硬件的工作状态有了更加深刻的了解和认识。
本文标题:计算机体系结构实验报告——实验三
链接地址:https://www.777doc.com/doc-5610308 .html