나는이 숙제를 풀려고했지만 해결책을 찾지 못했습니다. 아래는 문제입니다.MIPS에서 C로 번역 할 때의 문제
다음 MIPS 코드를 고급 언어 프로그램으로 번역하십시오. $ t0, $ t1 및 $ t2에 배열 A, B 및 C의 기본 주소가 들어 있다고 가정합니다.
add $t4, $zero, $zero
Loop:
add $t5, $t4, $t1
lw $t6, 0($t5)
add $t5, $t4, $t2
lw $t7, 0($t5)
add $t6, $t6, $t7
add $t5, $t4, $t0
sw $t6, 0($t5)
addi $t4, $t4, 4
slti $t5, $t4, 256
bne $t5, $zero, Loop
Also find the decimal value in the offset field of bne
명령.
여기 제가 시도했지만, 아직 256
의 위치를 찾지 못했습니다.
int *temp4 = 0;
while(1)
{
*int temp5 = temp4 +B[0];
a:
*int temp6 = temp5;
temp5 = C[0] + temp4;
*temp7 = temp5;
temp6 = temp6 + temp7;
temp5 = temp4 + A[0];
temp6 = temp5;
temp4 += 4;
if(temp5 < temp4)
goto __;
if(temp5 != 0)
goto a;
}
문에 $ t5, $ t4, $ t1을 추가하십시오. t1은 값으로 초기화되지 않습니다. 당신은 무엇이 붙잡을까요? –
'$ t1'은 배열 B의 기본 주소를 포함합니다. 가정합니다. mips에서는'la $ t1, arrayB'처럼 간단합니다. – Tom