资源描述:
《实验一熟悉WinDLX的使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一熟悉WinDLX的使用1.实验目的:通过本实验,熟悉WinDLX模拟器的操作和使用,了解DLX指令集结构及其特点。2.实验内容:(1)用WinDLX模拟器执行求阶乘程序facts。执行步骤详见“WinDLX教程”。这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。(2)输入数据“3”采用单步执行方法,完成程序并通过上述使用WinDLX,总结WinDLX的特点。(3)注意观察变量说明语句所建立的数据区,理解WinDLX指令系统。3.实验程序:求阶乘程序fa
2、cts;***********WINDLXEx.2:Factorial*************ProgrambeginatsymbolmainrequiresmoduleINPUTreadanumberfromstdinandcalculatethefactorial(type:double)theresultiswrittentostdout.dataPrompt:.asciiz"Anintegervalue>1:”PrintfFormat:.asciiz"Factorial=%g".align2PrintfPar:.wordPrintfFormat
3、PrintfValue:.space8.text.globalmainmam:;***ReadvaluefromstdinintoR1addir1,r0,PromptjalInputUnsigned;***initvaluesmovi2fpf10,r1;R1一>DODO二Countregistercvti2df0,f10addir2,r0,1;1一>D2D2..resultmovi2fpfl1,r2cvti2d伦,fllmovdf4,fZ;1一>D4D4二Constant1;***BreakloopifDO=1Loop:ledf0,f4;DO<=1?bfptFi
4、nish;***Multiplicationaridnextloopmultd伦,fZ,fOsubdf0,f0,f4jLoopFinish:;***writeresulttostdoutsdPrintfValue,f2addir14,r0,PrintfPartrap5;***endtrap0该程序中调用了input.s中的输入子程序;***********WINDLXEx.l:Readapositiveintegernumber*************;Subprogramcallbysymbol"InputUnsigned";expecttheaddress
5、ofazero-terminatedpromptstringinR1;returnsthereadvalueinR1;changesthecontentsofregistersR1,R13,R14.data;***DataforRead-TrapReadBuffer:.space80ReadPar:.wordO,ReadBuffer,80;***DataforPrintf-TrapPrintfPar:.space4SaveR2:.space4SaveR3:.space4SaveR4:.space4SaveRS:.space4.text.globalInputUn
6、signedInputUnsigned:;***saveregistercontentsswSaveR2,r2swSaveR3,r3swSaveR4,r4swSaveR5,r5;***PromptswPrintfPar,rladdir14,r0,PrintfPartrap5;***callTrap-3toreadlineaddir14,r0,ReadPartrap3;***determinevalueaddir2,r0,ReadBufferaddir1,r0,0addir4,r0,10;DecimalsystemLoop:;***readsdigitstoend
7、oflinelbur3,0(r2)seqir5,r3,10;LF一>ExitbnezrS,Finishsubir3,r3,48;??multurl,rl,r4;Shiftdecimaladdrl,rl,r3addir2,r2,1;incrementpointerjLoopFinish:;***restoreoldregistercontents1wr2,SaveR21wr3,SaveR31wr4,SaveR41wrS,SaveRSjrr31;Retur4.实验过程截图:jal的分支地址命名为“InputUnsigned"。为找到此符号地址的实际值,点击主窗口中的
8、Memory和Symbo