我想循环遍历一个数字数组,如下所示:
但是当我像这样创建一个数组
即使数组不全是2,它仍然存在。
.word 2,2,2,2,2,2,2,2,2,2,2,2,2
.word 2,2,2,2,2,2,2,2,2,2,2,2,2
.word 2,2,2,2,2,2,2,2,2,2,2,2,2
.word 2,2,2,2,2,2,2,2,2,2,2,2,2
我希望确保数组中的所有元素都是值为2的。这个数组有52个元素,因此每次我想检查是否所有的数组元素都是2,否则就执行其他操作。
这是我目前所做的:
add $t6,$0,$0
add $t7,$0,$0
SL:
addi $t6,$t6,4
addi $t7,$t7,1
la $t1,array
add $t1,$t1,$t6
lw $s0,($t1)
j check
slti $t8,$t7,52
bnez $t8,SL
jr $ra
check:
li $t3,2
seq $t4,$s0,$t3
beqz $t4,do_something
bnez $t4,exit
jr $ra
但是当我像这样创建一个数组
.word 0,2,2,2,2,2,2,0,2,2,2,2,2
.word 2,2,2,2,2,2,2,2,2,2,2,2,
.word 2,2,2,2,2,2,2,0,2,2,2,2,2
.word 2,2,2,2,2,2,2,2,2,2,2,2,0
即使数组不全是2,它仍然存在。
p == endp
是好的,但是你可以在底部使用bne $t0, $t1, L1
来完成,而不需要在同一个循环中需要beq
和j
。 - Peter Cordes