【发布时间】:2017-03-07 16:17:44
【问题描述】:
我正在尝试仅使用一个数组来反转数组。当high的指标小于等于low的时候,我应该不断的切换high和low的内容。但是,我的地址超出范围,并且无法找到有关如何修复它的资源。
我应该在反转数组时只使用一个数组。我究竟做错了什么?星号是我得到错误的地方。
reverseArray:
li $t6, 0 #head = first index of array
la $s0, array
li $t5, 4
mult $s0, $t5
mflo $t7 #tail = last index of array
swap:
lw $t6, 0($s0)
**lw $t4, 0($t7)**
sw $t4, 0($s0)
sw $t6, 0($t7)
add $t7, $t7, -4
add $s0, $s0, 4
sle $t1,$t7,$s0
beq $t1,$0,swap
【问题讨论】:
-
您正在使用索引作为指针。您需要添加基地址。
-
我该怎么做?基地址是什么?对不起,我才刚刚开始。 @小丑
-
$s0是基地址,您似乎将其乘以 4。这是错误的。您想将元素计数乘以元素大小并添加基地址。