怎么写分工& MIPS中的剩余代码?

时间:2012-03-21 13:22:19

标签: mips

我必须输入2个用户输入并找到产品,商和余数。我不能使用乘法或除法运算符。

我得到了多重代码

L1:
add  $t2,$s1,$s0  #diving $s0 by $s1
bge  $s1, $s0, EXIT   # branch if ! ( i < k )
addi $s1, $s1, 1      # k++
add  $t2, $s1, $s0    # i = i * 2 
EXIT:

我如何找到商和余数?我尝试将所有添加更改为sub,但没有运气。

2 个答案:

答案 0 :(得分:3)

如果使用带有循环的加法来乘以两个数字,则使用带有循环的减法来除以它们。一些伪代码:

main:
    #initialize registers

loop:
    #dividend -= divsor
    #quotient++

    #temp = dividend - divsor
    #if temp < 0 jump to done
    #jump to loop

done:
    #remainder = temp

答案 1 :(得分:2)

使用以下命令获取商和余数

rem   d, s1, s2     #d = s1 % s2;  gives remainder