salve, per quanto ne so io lo stack sarebbe un contenitore di activation frame, quindi se io 'salvo' nello stack diversi registri (nello specifico sono $ra per il ritorno da un jal) non dovrei sovrascriverli ma salvarli tutti quanti e poi richiamarli in un ordine LIFO giusto ?
Perchè a me questo codice invece non mi richiama tutti i vari registri $ra salvati ma solamente l'ultimo.
L'esercizio chiedeva di imprementare una funzione tipo:
S(n)= n+S(n-1) se n>0
1 se n=0
e questo è il codice:
mi serve sapere l'errore nel codice e non una possibile soluzione alternativa dell'esercizio perfavorecodice:.text .globl main main: li $v0, 5 syscall move $t0, $v0 li $t1, 0 add $t1, $t1, $t0 subu $sp, $sp, 8 sw $t0, 0($sp) jal funct move $a0, $t1 li $v0, 1 syscall addu $sp,$sp,8 li $v0, 10 syscall funct: ble $t0, 0 casobase sw $ra, 4($sp) sub $t0, $t0, 1 add $t1, $t1, $t0 jal funct j end casobase: add $t1, $t1, 1 end: lw $ra, 4($sp) jr $ra
grazie in anticipo


Rispondi quotando