我试图在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是否有效,但检查if b
是否有效。即使a
和b
都是偶数,while循环中的其余指令也不会执行,并且a和b在调用函数后保持不变。
对我做错的任何意见都会有所帮助。
谢谢!
答案 0 :(得分:2)
您可以通过andi $t0, $s2, 0x1
检查均匀度,如果$ s2为偶数,则会在$ t0中得到零结果。无需使用div
指令。同样div $s1, $2
将寄存器16($ s2)除以寄存器2($ v0),这可能不是你想要的。