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

我试图在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
出于某种原因,检查a是否为偶数有效,但检查b是否为偶数无效。即使
a
b
都是偶数,while循环中的其余指令也不会执行,调用函数后a和b保持不变

任何关于我做错了什么的信息都会有帮助


谢谢

您可以通过
和i$t0、$s2、0x1检查均匀度,如果$s2为偶数,则$t0的结果为零。不需要使用
div
指令。另外
div$s1,$2
将寄存器16($s2)除以寄存器2($v0),这可能不是您想要的

非常感谢!我的问题是我用了2美元。我没意识到那是一本登记簿