Mips 连续除法
我试图在mips中实现连续除法Mips 连续除法,mips,division,mips32,Mips,Division,Mips32,我试图在mips中实现连续除法 function_1: while: # a % 2 == 0 DIV $s0, $2 MFHI $t1 bne $t1, $0, exit # b % 2 == 0 DIV $s1, $2 MFHI $t2 bne $t2, $0, exit j while exit: jr $ra
function_1:
while:
# a % 2 == 0
DIV $s0, $2
MFHI $t1
bne $t1, $0, exit
# b % 2 == 0
DIV $s1, $2
MFHI $t2
bne $t2, $0, exit
j while
exit:
jr $ra
出于某种原因,检查a是否为偶数有效,但检查b是否为偶数无效。即使a
和b
都是偶数,while循环中的其余指令也不会执行,调用函数后a和b保持不变
任何关于我做错了什么的信息都会有帮助
谢谢 您可以通过
和i$t0、$s2、0x1检查均匀度,如果$s2为偶数,则$t0的结果为零。不需要使用div
指令。另外div$s1,$2
将寄存器16($s2)除以寄存器2($v0),这可能不是您想要的 非常感谢!我的问题是我用了2美元。我没意识到那是一本登记簿