我很难找出如何用寄存器中的“srl”指令保留除法的余数,以打印带有二进制值的整数。
f.e。如果t1是我们要转换的数字,我们在循环内使用右移逻辑和2来划分它:
loop:
srl $t2, $t1, 2 #number/2
beq $t2, '0', exit #if the quotient is 0, exit the loop
j loop
exit:
如何在srl命令之后保留余数,然后倒回剩余部分的位以打印二进制数?
答案 0 :(得分:0)
您可以将$ t1向左移动29(31-2),然后向右移动。这应该会留下原始$ t1中最低的两位。
这当然假设是32位整数。
例如,假设您从值5开始。
那你有
0000 0000 0000 0000 0000 0000 0000 0101
以29收益向左移动
1000 0000 0000 0000 0000 0000 0000 0000 0000
然后,转回:
0000 0000 0000 0000 0000 0000 0000 0001
这是剩下的。