如何编写部门和部门;MIPS中没有mult或div指令的剩余代码?
我需要2个用户输入,然后找到乘积、商和余数。我也不能使用多重化或除法运算符 我有乘法码:如何编写部门和部门;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,退出#分支
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中做到这一点吗?是的。您是否尝试过使用我提供的伪代码实现新的解决方案?它可以逐行翻译。