我需要输入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:
那我怎么找商和余数呢?我试着把所有的 add
至 sub
的,但没有运气。
如果你用循环的加法来乘两个数,那么用循环的减法来除它们。一些suedocode。
main:
#initialize registers
loop:
#dividend -= divsor
#quotient++
#temp = dividend - divsor
#if temp < 0 jump to done
#jump to loop
done:
#remainder = temp
使用下面的命令来获得商和余数。
rem d, s1, s2 #d = s1 % s2; gives remainder