0

我想在 MIPS 程序集中实现这些循环,但不知道如何检查双重条件:

for(i=0;i<dim&&dim>1;++i)


for(k=1;k<dim&&j!=i;++k)

i=$t0
dim=$a0
k=$t1
4

1 回答 1

1

管理。为了将来参考这里是它是如何完成的:

if ( i == j && i == k ) // if ( <cond1> && <cond2> )
i++ ; // if body
else 
j-- ; // else body $s2 
j = i + k ;

bne $s1, $s2, ELSE # cond1: branch if !( i == j )
bne $s1, $s3, ELSE # cond2: branch if !( i == k )
addi $s1, $s1, 1 # if-body: i++
j NEXT # jump over else
ELSE: addi $s2, $s2, -1 # else-body: j--
NEXT: add $s2, $s1, $s3 # j = i + k
于 2012-12-15T13:39:42.807 回答