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

Assembly 汇编MIPS:通过移位将十进制数转换为二进制数,assembly,binary,mips,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命令后保留余数,然后倒带余数的位以打印二进制数?您可以将$t1向左

我很难弄清楚如何在寄存器中保留用“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命令后保留余数,然后倒带余数的位以打印二进制数?

您可以将$t1向左移动29(31-2),然后再向右移动。这将为您保留原始$t1中的最低两位

这当然是假设一个32位整数大小

例如,假设从值5开始。 那你有
0000 0101

向左移动29
1000万

然后,返回:
0000 0001

哪个是余数。

使用按位
。注:
srl
by
2
不是除以
2
,而是除以
4
。如何打印?你到底想要什么样的结果?十进制是如何产生的(我以为寄存器中已经有了一个整数,而不是十进制字符串)?我已经有了t1中的整数,所以我想把整数打印成二进制。f、 e.如果输入为9,则输出应为1001