如何编写部门和部门;MIPS中没有mult或div指令的剩余代码?

如何编写部门和部门;MIPS中没有mult或div指令的剩余代码?,mips,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: L1: 加上$t2、$s1、$s0#潜水$s0乘以$s1 bge$s1,$s0,退出#分支

我需要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:
L1:
加上$t2、$s1、$s0#潜水$s0乘以$s1
bge$s1,$s0,退出#分支机构如果!(i

如何求商和余数?我尝试将所有的
add
s改为
sub
s,但没有成功。

如果使用循环加法将两个数字相乘,则使用循环减法将它们除。一些伪代码:

main:
    #initialize registers

loop:
    #dividend -= divsor
    #quotient++

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

done:
    #remainder = temp
main:
#初始化寄存器
循环:
#股息-=股息
#商++
#温度=股息-股息
#如果温度<0,则跳转至完成
#跳转到循环
完成:
#余数=温度

如果使用循环加法将两个数字相乘,则使用循环减法将两个数字相除。一些伪代码:

main:
    #initialize registers

loop:
    #dividend -= divsor
    #quotient++

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

done:
    #remainder = temp
main:
#初始化寄存器
循环:
#股息-=股息
#商++
#温度=股息-股息
#如果温度<0,则跳转至完成
#跳转到循环
完成:
#余数=温度

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

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

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

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

你知道如何在MIPS中做到这一点吗?是的。您是否尝试过使用我提供的伪代码实现新的解决方案?它可以逐行翻译。你知道如何在MIPS中做到这一点吗?是的。您是否尝试过使用我提供的伪代码实现新的解决方案?它可以逐行翻译。