[borghese] Progetto Maggio Agosto Clicca QUI per vedere il messaggio nel forum |
krowen |
Ciao a tutti!
spero che qualcuno legga questo post entro breve perchè sono sull'orlo di una crisi di nervi...
Purtroppo ho cosegnato per ben 3 volte il progetto con esito negativo... il commento è che lo stile di programmazione non rispecchia la modularità... più precisamente il professore ha segnalato un segmento del mio main come esempio, codice che vi riporto qui sotto...(in fondo al post metto il main per intero così da capire meglio il contesto...)
code: add $a3, $zero, $s0 # inserisco nel registro parametro $a3 il numero di elementi da leggere
jal read # richiamo la procedura che legge i valori da tastiera
add $s1, $zero, $v0 # salvo nel registro $s1 l'indirizzo del vettore allocato dalla procedura read
il commento è che ho mischiato codice della procedura con codice del main e che uso i registri con troppa libertà...
la mail si conclude con il suggerimento di consultare gli appunti e il libro per imparare come si scrive CORRETTAMENTE un programma in assembly...
l'unica differenza che noto tra il mio codice e quello degli appunti è l'utilizzo di una MOVE al posto della ADD per copiare i dati nei registri parametro...
Qualcuno per caso nota qualche eclatante errore nel pezzettino di codice che ho fornito???
code:
main:
jal interfaccia # richiamo la procedura che visualizza l'interfaccia
add $s0, $zero, $v0 # salvo nel registro $s0 il numero di elementi della serie
add $a3, $zero, $s0 # inserisco nel registro parametro $a3 il numero di elementi da leggere
jal read # richiamo la procedura che legge i valori da tastiera
add $s1, $zero, $v0 # salvo nel registro $s1 l'indirizzo del vettore allocato dalla procedura read
add $a3, $zero, $s1 # copio nel registro parametro a3 l'indirizzo del vettore
add $a2, $zero, $s0 # copio nel registro parametro a2 il numero di elementi su cui lavorare
jal ordinamento # ordino i valori inseriti per procedere con la fusione
add $a3, $zero, $s1 # copio nel registro parametro a3 l'indirizzo del vettore
add $a2, $zero, $s0 # copio nel registro parametro a2 il numero di elementi su cui lavorare
jal stampa # richiamo la procedura di stampa
add $a3, $zero, $s1 # copio nel registro parametro a3 l'indirizzo del vettore
add $a2, $zero, $s0 # copio nel registro parametro a2 il numero di elementi su cui lavorare
jal fusione # richiamo la procedura di fusione dei due elementi più vicini
li $v0, 4 #\
la $a0, fine # stampo messaggio di fine esecuzione
syscall #/
exit: li $v0, 10 # exit
syscall
|
krowen |
Martedì ho un colloquio con il professore...
aggiornerò il thread con l'esito della discussione :) |
|
|
|