Assembly 如何在汇编中执行浮点乘法而不使用mul

Assembly 如何在汇编中执行浮点乘法而不使用mul,assembly,floating-point,mips,multiplication,Assembly,Floating Point,Mips,Multiplication,我试图在汇编代码中执行浮点数乘法,但不使用mul指令。基于乘法的概念,A*B是一个加了B的次数,但我不知道用浮点怎么可能 这就是我编写简单整数乘法代码的方式t6是一个初始化为0的计数器,t0是本例中的B值t1将是一个: Loop1: bge $t6, $t0, ExitL1 # If value of t6 is greater or equal than t0, exit add $t1, $t1, $t0 # Adds value of t0 to t1 and sto

我试图在汇编代码中执行浮点数乘法,但不使用mul指令。基于乘法的概念,A*B是一个加了B的次数,但我不知道用浮点怎么可能

这就是我编写简单整数乘法代码的方式
t6
是一个初始化为0的计数器,
t0
是本例中的B值<代码>t1将是一个:

Loop1:
    bge $t6, $t0, ExitL1 # If value of t6 is greater or equal than t0, exit
    add $t1, $t1, $t0    # Adds value of t0 to t1 and stores in t1
    addi $t6, $t6, 1     # Increases loop counter by 1
    j Loop1

MIPS
mul
指令执行整数乘法。你是说?通常情况下,对于软件浮点,您希望在尾数(也称为有效位)上使用整数乘法指令,可能是
mult
,这样您就可以得到结果的高半部分。无论如何,使用
add.s
重复加法会有大量舍入错误问题,即使您只有整数值浮点。e、 g.对于足够大的输入,
x-=1
仍然等于
x
。因此,对于某些输入,使用浮点作为循环计数器将陷入无限循环。我假设这是一个家庭作业,或者你应该用整数运算实现软件浮点运算?请参阅和,它们是C实现的示例。您是否需要生成符合IEEE-754的结果,即正确地向下舍入到尾数的最后一位?以及处理次正常值和NAN?如果不是的话,您可能会简化一些实现的功能。