因此,我的任务是编写一个MIPS函数(称为“ my_inthist”),该函数计算非负整数值(不超过100个元素)的数组的直方图并返回唯一值的数量。 / p>
-输入数组的地址将通过寄存器$ a0传入
-使用寄存器$ a1的元素数
-将结果保存到$ a2的输出数组的地址(我们假设输出数组足够大)
-结果数组必须中的条目必须根据输入数组中的值从小到大进行排序。
这是输出的样子:
Please enter an integer: 5
7 6 1 2 7 .
The number of unique values is 4.
1 1.
2 1.
6 1.
7 2.
Your counts are correct.
Your results are sorted correctly.
所以,这是我到目前为止的代码,并且不断输出错误的结果。
my_inthist:
add $t0, $zero, $zero # i = 0
add $t3, $zero, $zero # k = 0
loop:
slt $t1, $t0, $a1 # i < num of elements(length)
beq $t1, $zero, end
sll $t1, $t0, 2
add $t1, $a0, $t1 # $t1 = a[i]
lw $t2, 4($t1) # $t2 = a[a+i]
beq $t1, $t2, count # if one int is equal to another, k--
addi $t3, $t3, 1 # i++
addi $t0, $t0, 1 # k++
j loop
count:
subu $t3, $t3, 1 # k--
j loop
end:
move $v0, $t3 # return num of unique values k
jr $ra
这是我不断得到的结果:
Please enter an integer: 5
7 6 1 2 7 .
Number of unique values is 5.
0 0.
0 0.
0 0.
0 0.
0 0.
Your counts are correct.
Your results are not sorted.
我仍然不确定两件事,为什么它为什么不对数字进行计数并输出计数,以及如何对结果数组进行排序。