![]() |
Pages (7): « 1 2 [3] 4 5 6 7 » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Architettura degli elaboratori e delle reti (http://www.dsy.it/forum/forumdisplay.php?forumid=210)
-- Preparazione al Laboratorio F49 (http://www.dsy.it/forum/showthread.php?threadid=42442)
Originally posted by uLori
penso di si, leggendo sul sito del prof dice che serve l'iscrizione al sife per fare l'esame di laboratorio e poter verbalizzare. quindi penso prima o poi uscirà. per ora c'è solo quello di borghese..
già...come facciamo per iscriverci e sapere quando è questo esameee??
Sul SIFA non c'è un tubo mannaggia! Ma mettere un avviso sul sito del corso no eh??? Ragazzi mi confermate che l'esame consiste solo nella scrittura di una procedura ricorsiva?? E che il tutto va fatto in un file di testo, senza bisogno di far girare il codice??
ciao, si si io sono stato dal prof qualche mese fà e anche lui mi ha confermato..bisogna solo scrivere la procedura ricorsiva senza main quindi deduco che sia impossibile da provare.. non sò se magari il main lo fà lui e lo prova o lo corregge leggendo il codice..
Misteri dell'esame di architettura Comunque...non mi è chiara una cosa...
li $v0 1
syscall
in questo modo si richiede la print_int? L'ho preso dalle esercitazioni che ci sono sul sito.. Ma non dovrei passare un intero come argomento tramite il registro $a0?? Perchè, sempre dalle esercitazioni --->
msg1: .asciiz "stringa"
li $v0 4 #chiamata a print_string
la $a0 msg1 #carico indirizzo di msg1 in $a0
syscall
ma io non credo questo serva saperlo...i vari print non avvengono nella parte della procedura ricorsiva ma nel main..almeno credo..
Si l'ho pensato anche io però non si sa mai Non ci sono altri esercizi o esempi di procedure ricorsive?? E poi un'altra cosa...Si può usare la pseudoistruzione 'move' o va sostituita con qualcos'altro??
altri esercizi non sò, ma qui non c'è nessuno che ha già fatto questo esame e sà dirci gli esercizi che sono stati dati??
l'istruzione move si la puoi usare anche perchè senza non saprei come fare..
eh infatti!
si comunque davvero... già il sito non è che dica molto..delle info su data e modalità d'esame non diciamo niente che è meglio! Possibile che su 775 visualizzazioni nessun'altro abbia già sostenuto questo esame??
Sto provando a fare l'esercizio che ha postato uLori..
F(n) = n - M(F(n - 1))
M(n) = n - F(M(n - 1))
con F(0) = 1 e M(0) = 0
La funzione F dovrebbe essere cosi..
F: addi $sp $sp -8 #alloco spazio per variabil
sw $a0 0($sp) #salvo il valore di n
sw $ra 4($sp) # salvo il return address
beq $a0 $zero fineF #se n=0 salto a fineF
subi $a0 $a0 1 # n = n -1
jal F #chiamo di nuovo F
add $a0 $zero $v0 #metto il risultato di F in $a0 per passarlo come parametro alla funzione M
jal M
.
.
.
fineF: addi $v0 $zero 1
lw $a0 0($sp)
lw $ra 4($sp)
addi $sp $sp 8
jr $ra
Dopo la jal M mi sono perso qualcuno riesce ad aiutarmi??
secondo me prima di tutto ti conviene fare i casi base
F: bne $a0, $zero, calc_f
li $v0, 1
jr $ra
calc_f: addi $sp, $sp, -8
sw $ra, 4($sp)
sw $a0, 0($sp)
addi $a0,$a0, -1
jal F
move $a0, $v0
jal M
lw $a0, 0($sp)
sub $v0,$a0, $v0
lw $ra, 4($sp)
addi $sp,$sp, 8
jr $ra
e poi per M è tutto uguale...
ma allora si sà quando è l'esame?
Grazie per la risposta! Comunque ancora niente..ho mandato una mail a Dantona (venerdi sera) ma non ha ancora risposto..spero in domani!
le print ti può servire sapere cosa fanno perchè nell'esercizio "capire il codice" ci sono spesso e anche se ci arrivi lo stesso sapere prima cosa fanno aiuta
Dantona qualche volta non risponde...io l'ho sempre braccato in Comelico!!
Ma non devo solo preoccuparmi della funzione ricorsiva?? Questo esame sta diventando sempre di più un mistero o.O
Mi sorge un dubbio, forse stupido.. Suppongo di avere come input n = 2, quindi chiamo per la prima volta la fuzione F. Eseguo la branch che mi fa saltare a calc_f, alloco lo spazio sullo stack e salvo $a0 ( = 2) e $ra ( che contiene l'indirizzo dell'istruzione successiva alla chiamata di F), e decremento $a0 di 1 (quindi $a0 = 1).
A questo punto richiamo di nuovo F, con input $a0 = 1 giusto? La branch mi fa saltare nuovamente a calc_f, alloco nuovamente lo spazio, salvo $a0 e $ra ecc..
La mia domanda è... Questo stack che sto allocando, non centra niente con la prima chiamata che avevo fatto ma si riferisce solamente a QUESTA chiamata di F giusto? E inoltre..il valore di $a0 che ora è 1...vale solo in QUESTA chiamata?
All times are GMT. The time now is 03:14. | Pages (7): « 1 2 [3] 4 5 6 7 » Show all 100 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.