如何比较mips程序集中的数组元素?

时间:2015-09-29 23:08:01

标签: arrays assembly mips

我知道如何以mips迭代数组。但是,我似乎无法弄清楚如何比较同一阵列中的两个元素?任何人都能指出我在正确的方向吗?

if(array[i] > array[i - 3])

我相信如果比比较两个寄存器更大,它将是一个分支,但我如何将数据输入两个寄存器?谢谢!

1 个答案:

答案 0 :(得分:0)

你不能迭代一个数组......你必须将4的倍数(=> index * 4)添加到数组的内存地址。然后你可以在这个修改过的内存地址加载这个值,并将它与不同的moddified地址进行比较......

.data
array: .word 1,2,3

#Index's you want to compair
i1: .word 0
i2: .word 1 

.text

MAIN:
lw $a0 i1
lw $a1 i2
li $t5 4 #load multiplier
mul $a0 $a0 $t5
mul $a1 $a1 $t5

la $t0 array
la $t1 array

add $t0 $t0 $a0
add $t1 $t1 $a1

lw $t0 ($t0)
lw $t1 ($t1)

beq $t0 $t1 TRUE