我需要一些帮助来比较同一索引处不同数组的两个元素,并计算相互之间有多少对。该程序假设计算两个数组在同一索引处包含相同整数的次数。我无法弄清楚如何包含大小(如果一个大于另一个)以及如何打印对的数量。
谢谢
.globl main
main:
li $t1,0 #arrays index
li $t2,0 #counter
li $t4,0 #count pairs
loop:
beq $t2,10,end
lw $v0,arrayA($t1)
lw $v1,arrayB($t1)
beq $v0, $v1, equal
addi $t1,$t1,4
addi $t2,$t2,1
b loop
equal:
addi $t4,$t4,1
addi $t1,$t1,4
addi $t2,$t2,1
b loop
end:
lw $a0,($t4)
li $v0,1
syscall
li $v0,10
syscall #Halt
.data
sizeA: .word 10
arrayA: .word -1, 0, 3, 6, 8, 10, 21, 11, 14, 10
sizeB: .word 10
arrayB: .word -2, 0, 7, 2, 12, 9, 2, 19, 20, 15
# end of program
答案 0 :(得分:1)
$t4
不是地址,因此lw $a0,($t4)
没有意义。您只想将其转移到$a0
进行打印。您可以使用move $a0, $t4
执行此操作,也可以直接在$a0
进行计数。
要考虑数组的长度,只需检查索引是否在两个数组的范围内,或者首先计算公共长度并将其用于循环。