我制作了一个程序,尝试显示用户输入的数字的二进制形式。但是程序没有正确地进行掩蔽。我应该怎么做才能解决它?
$s0 中的用户输入
Loop:
and $t0,$s0,2147483648 // anding it with this number because only its MSB is 1 all other bits are zero
sll $s0,$s0,1
move $a0,$t0
li $v0,1
syscall
beq $t1,31,Exit
addi $t1,$t1,1
j Loop
更新: 我按照 dbrank0 的建议修改了这段代码,但现在它只显示一位而不是 32 位
Loop:
and $t0,$s0,2147483648
sll $s0,$s0,1
beq $t1,31,Exit
move $a0,$t0
addi $t1,$t1,1
bgtu $t0,0,Check
li $t0,0
j Loop
Disp:
li $v0,1
syscall
j Loop
Check:
li $t0,1
j Disp
如果有人可以帮助我解决这个问题,那将是一件好事。
问候