이것은 숙제 문제입니다. 내 코드가 올바른 답을 제공합니다. 내가했던 것처럼 해결책을 쓰는 것은 끔찍하게 혼란 스러웠고, 나를 데려 갔다. 이 코드를 코딩하는 더 좋은 방법이 있습니까? 최적화가 꺼져과더 간단한 방법이 있나요?
# Convert to MIPS: (((5 + 1) - (1 + 3) + (5 - 3)) - 1) – 5 + 3
main:
li $t0 5
li $t1 1
li $t2 3
# (((5 + 1) - (1 + 3) + (5 - 3)) - 1) – 5 + 3
# becomes ((($t0 + $t1) - ($t1 + $t2) + ($t0 - $t2)) - $t1) - $t0 + $t2
# ((( $t3 ) - ( $t4 ) + ( $t5 )) - $t1) - $t0 + $t2
add $t3, $t0, $t1
add $t4, $t1, $t2
sub $t5, $t0, $t2
sub $t6, $t3, $t4
add $t6, $t6, $t5
sub $t6, $t6, $t1
sub $t6, $t6, $t0
add $a0, $t6, $t2
li $v0, 1 # print $a0
syscall
li $v0, 10 # system call 10... lets us exit, load 10 in $v0
syscall # call the exit.
우연히 SPIM 에뮬레이터를 사용하고 있습니까? –
QtSpim을 사용하고 있습니다. 내 코드는 간단한 산술 문제를 해결하기로되어있다. – Amy
위의 산술에 대해 괄호는 기호 1을 제외한 경우 아무 것도 변경하지 않습니다. RAM 테이블에 숫자 (5,1, -1, -3, 5, 3, -1, -5, 3)를로드하고 값을 읽는 루프를 반복하여 총계에 추가 한 다음 값을 반환 할 수 있습니다. done. 매우 적은 수의 레지스터를 사용하고 간단한 루프가 될 것입니다. –