汇编MIPS:通过移位将十进制数转换为二进制数

时间:2016-11-28 22:46:51

标签: assembly binary mips

我很难找出如何用寄存器中的“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命令之后保留余数,然后倒回剩余部分的位以打印二进制数?

1 个答案:

答案 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 这是剩下的。