MIPS到机器代码转换
如何知道最后一条指令的16位地址字段,即MIPS到机器代码转换,mips,Mips,如何知道最后一条指令的16位地址字段,即 bne$v1,$0,重复是否为十进制形式的-8?下面给出了此指令的32位机器代码。这是一个准备问题,其解决方案已提供给我们,但我不知道如何编写与repeat标签等价的二进制代码 repeat : lw $v1, 1($a0) add $v0, $v0, $t0 sw $v1, 1($a1) addi $a1, $a1, 1 addi $a1, $a1, 2 add
bne$v1,$0,重复
是否为十进制形式的-8
?下面给出了此指令的32位机器代码。这是一个准备问题,其解决方案已提供给我们,但我不知道如何编写与repeat
标签等价的二进制代码
repeat : lw $v1, 1($a0)
add $v0, $v0, $t0
sw $v1, 1($a1)
addi $a1, $a1, 1
addi $a1, $a1, 2
addi $a2, $a2, 1
addi $a0, $a0, 3
bne $v1, $zero, repeat
因为标签的地址在分支指令之前是7个字,而+1是因为MIPS在获取当前指令后立即增加PC(由于流水线),因此偏移量是-8
bne $v1 $zero repeat
000101 00011 00000 1111111111111000