Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly MIPS汇编中的十进制到二进制转换_Assembly_Mips_Division - Fatal编程技术网

Assembly MIPS汇编中的十进制到二进制转换

Assembly MIPS汇编中的十进制到二进制转换,assembly,mips,division,Assembly,Mips,Division,我试图在MIPS中显示十进制的二进制表示形式。但这个程序陷入了无限循环。我无法解决这个问题,所以请告诉我我做错了什么,这个程序对于查找数字的二进制表示有效吗。代码如下: Loop: div $s0,$t1 # t1 is 2 mflo $s0 # storing quotient in s0 for division mfhi $s4 move $a0,$s4 li $v0,1 syscall beq $s4,0,Exit j Loop 关于$s4是当前数字(剩余部分)

我试图在MIPS中显示十进制的二进制表示形式。但这个程序陷入了无限循环。我无法解决这个问题,所以请告诉我我做错了什么,这个程序对于查找数字的二进制表示有效吗。代码如下:

Loop:

div $s0,$t1   # t1 is 2

mflo $s0      # storing quotient in s0 for division
mfhi $s4

move $a0,$s4
li $v0,1
syscall

beq $s4,0,Exit

j Loop

关于

$s4
是当前数字(剩余部分)。您应该测试
$s0
是否为零。如果您在调试器/模拟器中逐步完成代码,这应该是显而易见的。另请注意,这将按相反顺序打印数字


如果您只需要二进制转换,通常的方法是只使用移位。

汇编中的分支会带来危险。通常,您会暂停程序,直到分支被执行为止。这样做是为了防止程序执行指令集中的下一条指令

在您的情况下,我会尝试将
noop
放在
beq
指令之后。
SLL$0,$0,0

noop
是一条对程序没有任何影响或没有任何意义的指令