浮點數(shù)的表示和計算_第1頁
浮點數(shù)的表示和計算_第2頁
浮點數(shù)的表示和計算_第3頁
浮點數(shù)的表示和計算_第4頁
浮點數(shù)的表示和計算_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精品文檔計算機組成原理實驗報告年級、專業(yè)、班級姓名實驗題目浮點數(shù)的表示和計算實驗時間實驗地點A主404實驗成績 實驗性質(zhì)驗證性 設計性 綜合性教師評價:算法/實驗過程正確; 源程序/實驗內(nèi)容提交 程序結構/實驗步驟合理;實驗結果正確; 語法、語義正確; 報告規(guī)范; 其他: 評價教師簽名:一、實驗目的 (1) 深入掌握二進制數(shù)的表示方法以及不同進制數(shù)的轉換; (2) 掌握二進制不同編碼的表示方法; (3) 掌握IEEE 754 中單精度浮點數(shù)的表示和計算。二、實驗項目內(nèi)容 假設沒有浮點表示和計算的硬件,用軟件方法采用仿真方式實現(xiàn)IEEE 754單精度浮點數(shù)的表示及運算功能,具體要求如下: (1)

2、 程序需要提供人機交互方式(GUI或者字符界面)供用戶選擇相應的功能; (2) 可接受十進制實數(shù)形式的輸入,在內(nèi)存中以IEEE 754單精度方式表示,支持以二進制和十六進制的方式顯示輸出; (3) 可實現(xiàn)浮點數(shù)的加減乘除運算; (4) 可以使用80X86或MIPS或ARM匯編指令,但是不能使用浮點指令,只能利用整數(shù)運算指令來編寫軟件完成。三、實驗過程或算法(源程序) 1. 本次項目我們采用單精度浮點數(shù)格式讀入兩個浮點數(shù),并讀入一個操作符,然后根據(jù)操作符類型選擇運算類型,加法指令如下: sum:subu$sp,$sp,32 sw $ra,20($sp)sw$fp,16($sp)addiu $fp

3、,$sp,28sw $a0,0($fp) #calculate the first numberandi $s2,$s0,0x80000000 # s2 is the sign srl$s2,$s2,31andi $s3,$s0,0x7f800000# s3 is the exponent srl$s3,$s3,23andi $s4,$s0,0x007fffff# s4 is the fraction addi$s4,$s4,0x00800000 #calculate the second numberandi $s5,$s1,0x80000000 # s5 is the sign srl$s

4、5,$s5,31andi $s6,$s1,0x7f800000# s6 is the exponent srl$s6,$s6,23andi $s7,$s1,0x007fffff# s7 is the fraction addi$s7,$s7,0x00800000sub$t0,$s3,$s6blt$t0,0,sumL1 # add subbgt$t0,0,sumL2# sub addbeq$t0,0,sumL3 2. 減法指令如下:mysub:subu$sp,$sp,32 sw $ra,20($sp)sw$fp,16($sp)addiu $fp,$sp,28sw $a0,0($fp) #calc

5、ulate the first numberandi $s2,$s0,0x80000000 # s2 is the sign srl$s2,$s2,31andi $s3,$s0,0x7f800000# s3 is the exponent srl$s3,$s3,23andi $s4,$s0,0x007fffff# s4 is the fraction addi$s4,$s4,0x00800000 #calculate the second numberxori $s5,$s1,0x80000000 # s5 is the sign srl$s5,$s5,31andi $s6,$s1,0x7f8

6、00000# s6 is the exponent srl$s6,$s6,23andi $s7,$s1,0x007fffff# s7 is the fraction addi$s7,$s7,0x00800000sub$t0,$s3,$s6blt$t0,0,subL1 # +,-bgt$t0,0,subL2# -,+beq$t0,0,subL3# +,+ or -,-3. 乘法指令如下:mutilStart:srl $t2,$s0,31 srl $t3,$s1,31 sll $t4,$s0,1srl $t4,$t4,24 # expsll $t5,$s1,1srl $t5,$t5,24 # ex

7、p # 0.1fracsll$t6,$s0,9srl $t6,$t6,9ori $t6,$t6,0x00800000sll $t6,$t6,8 addi $t4,$t4,1 # 0.1fracsll $t7,$s1,9srl $t7,$t7,9ori $t7,$t7,0x00800000sll $t7,$t7,8addi $t5,$t5,1sub $t4,$t4,127add $t4,$t4,$t5 # final expsub $t5,$t5,$t5mutilCompareSign:add $t2,$t2,$t3sll $t2,$t2,31 # final signmultu $t6,$t7

8、mfhi $t5#regularandi $t8,$t5,0x80000000beq $t8,0x80000000,mutilnextsll $t5,$t5,1sub $t4,$t4,1mutilnext:sll $t5,$t5,1 # IEEE754sub $t4,$t4,1srl $t5,$t5,9 # final fractionmutilFinal:sll $t4,$t4,24srl $t4,$t4,1addu $t2,$t2,$t4addu $t2,$t2,$t5 # resultadd$s2,$t2,$zero# save resultli $v0,4la $a0,msg3sysc

9、all li $v0,2mtc1 $t2,$f12 syscallla $a0,msg0 # new lineli $v0,4syscalllw$ra,20($sp)lw $fp,16($sp)addiu $sp,$sp,32jr$ra 4. 除法指令如下:divideStart:srl $t2,$s0,31 srl $t3,$s1,31 sll $t4,$s0,1srl $t4,$t4,24 # expsll $t5,$s1,1srl $t5,$t5,24 # expsll $t6,$s0,9srl $t6,$t6,9ori $t6,$t6,0x00800000sll $t7,$s1,9sr

10、l $t7,$t7,9ori $t7,$t7,0x00800000sub $t4,$t4,$t5 # final expaddi $t4,$t4,127sub $t5,$t5,$t5divideCompareSign:add $t2,$t2,$t3 sll $t2,$t2,31 # final signsub $t8,$t8,$t8 # use to record divid sub $t3,$t3,$t3 # use to record remaindersub $t5,$t5,$t5 # use as counterdividecompare:bge $t5,24,dividebreako

11、ut #compare the two numberblt $t6,$t7,dividelowerdividegreater:sub $t6,$t6,$t7 #divide is lowersll $t6,$t6,1sll $t8,$t8,1addi $t8,$t8,1addi $t5,$t5,1j dividecomparedividelower:sll $t6,$t6,1sll $t8,$t8,1addi $t5,$t5,1jdividecomparedividebreakout:blt $t8,0x00800000,dividedoSllbge $t8,0x01000000,divide

12、doSrlj divideresultdividedoSll:sll $t8,$t8,1subi $t4,$t4,1blt $t8,0x00800000,dividedoSllj divideresultdividedoSrl:srl $t8,$t8,1addi $t4,$t4,1bge $t8,0x01000000,dividedoSrlj divideresultdivideresult:bgt $t4,255,divideoverFlowsll $t8,$t8,9srl $t8,$t8,9sll $t4,$t4,24srl $t4,$t4,1add $t2,$t2,$t4add $t2,

13、$t2,$t8add$s2,$t2,$zero# save resultli $v0,4la $a0,msg3 #output messagesyscall li $v0,2mtc1 $t2,$f12 syscalljdiviedend 5. 十進制轉換為二進制指令如下:dex2:subu$sp,$sp,32 sw $ra,20($sp)sw$fp,16($sp)addiu $fp,$sp,28sw $a0,0($fp)add$a0,$s2,$zeroadd $t9,$zero,$a0 sub $t6,$t6,$t6# set $t6=0sub $t7,$t7,$t7 # set $t7=0a

14、ddi $t5,$zero,32 # set $t5=32 as a counteraddi $t8,$zero,0x80000000 # set $t8=1000 0000 0000 0000 0000 0000 0000 0000beginLoop:addi $t5,$t5,-1# counter -and $t7,$t8,$t9srl $t8,$t8,1srlv $t7,$t7,$t5add $a0,$t7,$zero #output one bitli $v0,1syscallbeq $t5,$t6,Exist #if equals jump exist j beginLoop 6.

15、十進制轉換為十六進制指令如下:dex16:subu$sp,$sp,32 sw $ra,20($sp)sw$fp,16($sp)addiu $fp,$sp,28sw $a0,0($fp)sub $t0,$t0,$t0# use as countersrloop:bge $t0,8,dex16end #16addi$t0,$t0,1srl$t1,$s2,28sll$s2,$s2,4bgt$t1,9,outcharli $v0,1add$a0,$t1,$zerosyscalljsrloopoutchar:addi $t1,$t1,55# change to charli $v0,11add$a0,$

16、t1,$zerosyscalljsrloopdex16end:la $a0,msg0# new lineli $v0,4syscalllw$ra,20($sp)lw $fp,16($sp)addiu $sp,$sp,32jr$ra四、實驗結果及分析和(或)源程序調(diào)試過程 1. 實驗結果:本次實驗我們以十進制實數(shù)形式的輸入兩個浮點數(shù),在內(nèi)存中以IEEE 754單精度方式表示,執(zhí)行運算操作后,以十進制形式把結果輸出,并且可以以二進制和十六進制的方式顯示輸出,下圖是執(zhí)行加法運算,并輸出二進制形式:下圖是執(zhí)行乘法操作,并輸出十六進制形式:減法運算如下圖:除法運算如下圖:當輸入錯誤,如除數(shù)為0時,會顯示

17、錯誤信息并退出,如下圖: 2. 實驗分析:本次實驗我們使用MIPS匯編指令,利用整數(shù)運算指令來編寫了一個浮點數(shù)運算程序,通過在MARS 4.4軟件上進行調(diào)試運行,得到了正確結果,本次實驗實現(xiàn)了以下功能:(1) 程序提供了人機交互方式(字符界面)供用戶選擇相應的功能;(2) 接受十進制實數(shù)形式的輸入,在內(nèi)存中以IEEE 754單精度方式表示,支持以二進制和十六進制的方式顯示輸出;(3) 實現(xiàn)了浮點數(shù)的加減乘除運算;(4) 沒有使用浮點指令,只利用了整數(shù)運算指令來完成軟件的編寫。 3. 成員分工:加、減、乘、除四個運算指令程序的編寫。:十進制轉二進制,十進制轉十六進制代碼的編寫。實驗報告由兩人共同

18、完成。備注:1、教師在布置需撰寫實驗報告的實驗前,應先將報告書上的“實驗題目”、“實驗性質(zhì)”、“實驗目的”、“實驗項目內(nèi)容”等項目填寫完成,然后再下發(fā)給學生。2、教師在布置需撰寫報告的實驗項目時,應告知學生提交實驗報告的最后期限。3、學生應按照要求正確地撰寫實驗報告:1) 在實驗報告上正確地填寫“實驗時間”、“實驗地點”等欄目。2) 將實驗所涉及的源程序文件內(nèi)容(實驗操作步驟或者算法)填寫在“實驗過程或算法(源程序)”欄目中。3) 將實驗所涉及源程序調(diào)試過程(輸入數(shù)據(jù)和輸出結果)或者實驗的分析內(nèi)容填寫在“實驗結果及分析和(或)源程序調(diào)試過程”欄目中。4) 在實驗報告頁腳的“報告創(chuàng)建時間:”處插入完成實驗報告時的日期和時間。5) 學生將每個實驗完成后,按實驗要求的文件名通過網(wǎng)絡提交(上載)到指定的服務器所規(guī)定的共享文件夾中。每個實驗一個電子文檔,如果實驗中有多個電子文檔(如源程序或圖形等),則用WinRAR壓縮成一個壓縮包文檔提交,壓縮包文件名同實驗報告文件名(見下條)。6) 提交的實驗報告電子文檔命名為:“年級(兩位數(shù)字不要“級”字)專業(yè)(縮寫:計算機科學與技術專業(yè)(計科

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論