현재 MIPS 어셈블리 언어를 배우려고하고 있는데 배열을 사용하는 데 두 가지 다른 방법이 있으며 두 경우의 차이점을 알고 싶습니다.mips - 배열에 액세스하는 방법의 차이
첫번째 방법
.data
array: .word 0, 1, 2, 3
.text
main:
li $t0, 0
lw $t1, array($t0) #t1 = array[0], t1 = 0
addi $t0, $t0, 4 #increment
lw $t2, array($t0) #t2 = array[1], t2 = 1
초 방법
.data
array: .word 0, 1, 2, 3
.text
main:
la $t0, array
lw $t1, ($t0) #t1 = 0
addi $t0, t0, 4 #increment
lw $t2, ($t0) #t2 = 1
따라서 차이가 뭐죠?
하나 게다가, 당신은 0에서 시작 $ T0에 배열의 주소를로드, 다른 방금 어떤 차이를 0으로로드되지 않습니다 가독성과 나는 표준이 첫 번째 방법이라고 생각한다. –
두 번째 방법은 정상적인 방법입니다. 첫 번째 방법은 배열의 주소가 64KB 미만인 경우에만 작동합니다. – markgz