我写了这段代码(这只是其中的一部分):
beq $t4 ,$0 ,__less3
add $s2,$t3,$0 # s2=t3
add $s3,$t2,$0 # s3=t2
j __next1
__less3:
add $s2,$t2,$0 # s2=t2
add $s3,$t3,$0 # s3=t3
__next1:
slt $t4, $t1, $t0 # t4=(t1<t0)
beq $t4 ,$0 ,__les1sk
问题在于,当模拟到达第4行并需要进行跳转时,它会执行第7行(下一个命令),然后才会跳转到第10行。 我知道这是因为寄存器$ s2更改为$ t2而不是保留$ t3的值。
答案 0 :(得分:0)
我相信模拟器中有一个选项可以禁用延迟分支。