MIPS——整數轉為浮點數


計組大作業有個地方要將整數轉為浮點數計算,但網上好像沒有什么資料,只好自己寫了一個轉換函數(如果有轉換指令請告知)

主要根據浮點數的存儲方式,分別得到符號位、階碼和尾數,然后組合即可。具體見代碼。

#將整數轉換成浮點數
#這里設置待轉整數為$t1 轉成浮點數保存在$f1
tran:
    slt $t0 $t1 $0
    sll $t0 $t0 31     #得到符號位
    slt $t2 $t1 $0     
    beq $t2 0 posi
    not $t1 $t1        #如果$t1為負數取反
    addi $t1 $t1 1    
posi:
    addi $t2 $0 1
    addi $t3 $0 0 
loop1:
    and $t4 $t2 $t1
    beq $t4 0  pass
    move $t5 $t3
pass:
    sll $t2 $t2 1
    addi $t3 $t3 1
    bne $t3 31 loop1
    addi $t2 $0 0
    addi $t3 $0 0 
loop2:
    sll $t2 $t2 1
    addi $t2 $t2 1
    addi $t3 $t3 1
    bne $t3 $t5 loop2
    and $t2 $t2 $t1
    li $t6 23
    sub $t6 $t6 $t5
    move $t3 $0
loop3:
    sll $t2 $t2 1
    addi $t3 $t3 1
    bne $t3 $t6 loop3
    addu $t0 $t0 $t2     #得到尾數
    add $t5 $t5 127
    sll $t5 $t5 23
    addu $t0 $t0 $t5     #得到階碼 此時$t0已經轉成$t1的浮點數表示
    mtc1 $t0 $f1           #用浮點寄存器$f1存儲
    jr  $ra

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM