2015-12-17 162 views
2
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 

我怎么知道,最后的指令即 bne $v1, $zero, repeat的16位地址字段是十进制形式-8?下面给出了这条指令的32位机器码。这是一个准备问题的解决方案给我们,但我不明白如何编写repeat标签的二进制等价物。MIPS机器代码转换

bne  $v1  $zero   repeat 

000101 00011  00000  1111111111111000 

回答

1

由于标号的地址是分支指令前7个字,和1因为MIPS获取当前指令(由于流水线)后立即递增PC,因此,偏移量为-8。