如何在MIPS中写出没有mult或div指令的除法& 余数代码?

问题描述 投票:1回答:2

我需要输入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:

那我怎么找商和余数呢?我试着把所有的 addsub的,但没有运气。

mips
2个回答
3
投票

如果你用循环的加法来乘两个数,那么用循环的减法来除它们。一些suedocode。

main:
    #initialize registers

loop:
    #dividend -= divsor
    #quotient++

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

done:
    #remainder = temp

2
投票

使用下面的命令来获得商和余数。

rem   d, s1, s2     #d = s1 % s2;  gives remainder
© www.soinside.com 2019 - 2024. All rights reserved.