如何在MIPS中编写没有多或分指令的除法和余数代码?

  • 本文关键字:指令 除法 代码 余数 MIPS mips
  • 更新时间 :
  • 英文 :


我必须接受两个用户输入,并找到乘积、商和余数。我也不能使用乘法运算符或除法运算符。

我有乘法代码:

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:

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

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

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

如果使用加法和循环来乘以两个数字,那么使用减法和循环来除法。一些伪代码:

main:
    #initialize registers
loop:
    #dividend -= divsor
    #quotient++
    #temp = dividend - divsor
    #if temp < 0 jump to done
    #jump to loop
done:
    #remainder = temp

最新更新