资源描述:
《计算机体系结构实验报告——实验一.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机体系结构实验报告——实验一1.实验目的:通过本实验,熟悉WinDLX模拟器的操作和使用,了解DLX指令集结构及其特点。2.实验内容:(1)用WinDLX模拟器执行求阶乘程序facts。执行步骤详见“WinDLX教程”。这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。(2)输入数据“3”采用单步执行方法,完成程序并通过上述使用WinDLX,总结WinDLX的特点。(3)注意观察变量说明语句所建立的数
2、据区,理解WinDLX指令系统。3.实验程序:求阶乘程序fact.s--------------------------------------------------------------------------;Programbeginatsymbolmain;requiresmoduleINPUT;readanumberfromstdinandcalculatethefactorial(type:double);theresultiswrittentostdout;-----------------
3、---------------------------------------------------------.dataPrompt:.asciiz"Anintegervalue>1:"在变量Prompt中存放一个字符串PrintfFormat:.asciiz"Factorial=%g"在变量pringformat中存放一个字符串.align2PrintfPar:.wordPrintfFormatprintfFormat的地址值PrintfValue:.space8给PrintValue保留8个
4、字节1.text正文.globalmain标号mainmain:程序在main开始;***ReadvaluefromstdinintoR1说明:从标准输入程序读值到R1addir1,r0,Prompt0+Prompt地址值送R1jalInputUnsigned转输入程序InputUnsigned;***initvalues输入的值在R1中movi2fpf10,r1;R1->D0D0..CountregisterR1送F10(整形变量变为浮点变量)cvti2df0,f10F10送F0,F1(单精度变为双精度)
5、addir2,r0,1;1->D2D2..result0+1送R2movi2fpf11,r2R2送F11(整形变量变为浮点变量)cvti2df2,f11F11送F2,F3(单精度变为双精度)movdf4,f2;1->D4D4..Constant1F2,F3送F4,F5;***BreakloopifD0=1说明Loop:ledf0,f4;D0<=1?标号:LOOPIF(F0<=F4)FPS=1ELSEFPS=0bfptFinishIFFPS=1转Finish;***Multiplicationandnextl
6、oop下一个程序段说明multdf2,f2,f0f2*f0送f2subdf0,f0,f4F0-F4送f0jLoop转loopFinish:;***writeresulttostdout结束标号写结果到标准输出程序sdPrintfValue,f2结果值由f2送变量PrintfValueaddir14,r0,PrintfParPrintfPar地址值送R14trap5自陷调用5将结果值输出;***endtrap0自陷调用0程序结束该程序中调用了input.s中的输入子程序2;------------------
7、-----------------------------------------------------------;Subprogramcallbysymbol"InputUnsigned";expecttheaddressofazero-terminatedpromptstringinR1;returnsthereadvalueinR1;changesthecontentsofregistersR1,R13,R14;-------------------------------------------
8、----------------------------------.data;***DataforRead-TrapReadBuffer:.space80输入缓冲区80个字节ReadPar:.word0,ReadBuffer,80变量ReadPar一个字“0”;***DataforPrintf-TrapPrintfPar:.space4变量PrintfPar保留4个字节SaveR2:.space4变量SaveR