zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    15_门面模式
    14_责任链模式
    13_观察者模式
    12_状态模式
    11_策略模式
    10_命令模式
    09_适配器模式
    08_装饰者模式
    07_代理模式
    linux邮件服务器postfix配置实例
  • 原文地址:https://www.cnblogs.com/yanying7/p/14123245.html
Copyright © 2011-2022 走看看