0
안녕하세요 MIPS 어셈블리 언어를 처음 사용하고 B[8]=A[i-j]
에 해당하는 변수를 쓰려고 시도하는 중, 변수 f, g, h, i 및 j가 $ s0, $ s1, $ s2, $ s3 및 $ s4에 각각 적용됩니다. 배열 A와 B의 기본 주소는 각각 레지스터 $ s6과 $ s7에 있다고 가정합니다.mips 주소 범위를 벗어났습니다
내 코드
# Gets A[i-j]
sub $t1, $s3, $s4
sll $t1, $t1, 2
add $t1, $s6, $t1
lw $t0, 0($t1)
# Set B[8] equal to above
addi $t2, $s0, 8
sll $t2, $t2, 2
add $t2, $s7, $t2
lw $t2, 0($t2)
sw $t2, 0($t0)
하지만이 0x0040000c에서 런타임 예외가 발생합니다 : 주소 범위를 0x00000000에서, 어떤 조언을? 당신은 당신의 코드가 설명을 일치 시키려면
화재까지 디버거와는 다음과 같은 답 : 어떤 명령은 주소 0x0040000c에있다? 그 당시에는 레지스터에는 무엇이 들어 있었으며, 어떻게 그것을 포함 할 수 있었습니까? – moonshadow
'$ s6'이 실제로 유효한 주소를 포함하고 있는지 확인 했습니까? 그리고'$ s3'과'$ s4'에 어떤 가치가 있습니까? – Michael