0
배열 하나만 사용하여 배열을 뒤집어 쓰려고합니다. high의 인덱스가 low보다 작거나 같을 때, 나는 high와 low의 내용을 계속해서 스위칭해야합니다. 그러나 주소 범위를 벗어나고 있으며 문제를 해결하는 방법에 대한 리소스를 찾는 데 문제가 있습니다.MIPS 어셈블리의 주소 범위를 벗어 납니까?
배열을 뒤집을 때 하나의 배열 만 사용해야합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 별표 표시된 부분은 오류가 발생하는 곳입니다.
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
포인터를 색인으로 사용하고 있습니다. 기본 주소를 추가해야합니다. – Jester
어떻게 그럴 수 있습니까? 기본 주소는 무엇입니까? 미안 해요, 그냥 시작 했어요. @Jester –
'$ s0'은 기본 주소이고, 당신은 그것을 4 배로 늘리는 것 같습니다. 틀렸어. 요소 수를 요소 크기로 곱하고 기본 주소를 추가하려고합니다. – Jester