Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

[HELP] Dubbi Svolgimento Esame 15/07


  • Effettua l'accesso per rispondere
Questa discussione ha avuto 54 risposta/e

#1
dylzen

dylzen

    Advanced Member

  • Utente
  • StellaStellaStella
  • 185 Messaggi:
mmh allora ragazzuoli, avrei un paio di kose da farmi spiegare xkè evidentemente nn le ho kapite tanto bene, o meglio nn avendo mai incontrato questo tipo di problemi nn ci ho potuto sbattere la testa...

1) Come diavolo si traduce la direttiva #define?? nel compito di stamattina c'era un bel #define MAXDIM 5 che io ho nn ho proprio considerato, cioè l'ho trattata come una semplicissima variabile dichiarata nel main, cioè ho usato soltanto una load-immediate... il risultato è garantito ma nn penso sia il modo migliore x tradurla, giusto?

2) Come diavolo si passa il quinto parametro durante la chiamata di funzione?? il sottoprogramma somma_vettori di stamattina aveva 5 parametri, ok i primi 4 nei registri a0-a3, ok il quinto parametro passarlo nello stack, ma ke vuol dire? io ho semplicemente fatto una store-word nel prologo del main x il registro s7 e poi, dopo il passaggio di a3, una "move s7, s1" (dove c'era v1 mi pare), in pratica ho trattato s7, ke era il mio quinto parametro, come se fosse "a4", + o - ... nn so se avete kapito e skusate x la lunghezza del post...

P.S il mio programma funziona perfettamente (a parte un piccolo bad address alla fine prrr ), quindi vorrei capire se ci ho azzekkato con queste 2 implementazioni o c'era un modo più adeguato x risolverle... attendo delucidazioni... thanks :doofy:


K6cSUfo.png ldTC0c4.png F3RltDf.png ysAWECd.png HXDuJxQ.png hrrH0NX.png gcQdz0o.png VQDZBzt.png wmDuXSk.png kMi7x2A.png 0khmZP7.png qnzN56a.png

#2
HDM

HDM

    Advanced Member

  • Utente
  • StellaStellaStella
  • 405 Messaggi:
1) la define in sostanza definisce una costante, ovvero una variabile con visibilità globale. Quindi andava tradotta con una semplice:
var: .word 5
ovvero allochi 4 byte globali già inizializzati col valore 5.
2) per quanto riguarda il passaggio del primo parametro dovevi fare una cosa del tipo:
addi $$sp, $$sp,-4
sw $$s3,4($$sp)
prima di invocare la funzione, in $$s3 ci sta il valore del quinto parametro.
poi all'interno della funzione invece si carica il valore salvato facendo.
lw $$t0,4($$sp)
ovviamente prima del prologo.
Io avrei implementato in questo modo.
Immagine inviata

#3
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
Dylan tu pensa che a me non c'era proprio il #define :D ce l'hanno detto a voce (abbiamo avuto un problema col mainframe). Detto questo mi son confuso e invece di fare come ha proposto il buon HDM, ho caricato direttamente 20 byte in a0 e via di malloc... Vedremo di giustificarci all'orale (magari con la scusa "eh, ma così ho ottimizzato il codice u.u").

Per il quinto parametro io l'ho caricato come posizione 4(§sp) e poi l'ho recuperato dallo stack usando una regola che mi sono inventato sul momento o_O non sapendo se c'è o no una convenzione già esistente, ho caricato dallo stack il primo valore prima del precedente stack pointer, pari al framepointer addizionato all'attuale stackpointer +8... Non lo so se è la soluzione più valida, ma di sicuro gira e gira bene Oo.

Diciamo che generalmente il quinto parametro si passa via stack, poi sono cavoli del programmatore capire come recuperarlo dallo stack o_O .

#4
Ciroxs

Ciroxs

    Newbie

  • Utente
  • StellaStellaStella
  • 1568 Messaggi:

1) la define in sostanza definisce una costante, ovvero una variabile con visibilità globale. Quindi andava tradotta con una semplice:
var: .word 5
ovvero allochi 4 byte globali già inizializzati col valore 5.
2) per quanto riguarda il passaggio del primo parametro dovevi fare una cosa del tipo:
addi $$sp, $$sp,-4
sw $$s3,4($$sp)
prima di invocare la funzione, in $$s3 ci sta il valore del quinto parametro.
poi all'interno della funzione invece si carica il valore salvato facendo.
lw $$t0,4($$sp)
ovviamente prima del prologo.
Io avrei implementato in questo modo.


Bene.... il passaggio del quinto parametro alla sottofunzione l'ho fatto esattamente così... identico e preciso.... mi sn confuso sul MAXDIM, nn considerandolo variabile globale, ma cm se lì stesse scritto v[5].... e quindi ho allocato direttamente 20 byte.... ke cakkio!!!! ._.

ZKU4w.png


#5
dylzen

dylzen

    Advanced Member

  • Utente
  • StellaStellaStella
  • 185 Messaggi:
benissimo, allora se ne riparla a settembre :exploson:

EDIT: Io la define in un primo momento l'avevo proprio tradotta così, con la .word, ed ero anche abbastanza sicuro si facesse in quel modo... poi l'ho cambiata perchè sono andato in crisi e non riuscivo a capire come fare MAXDIM*sizeof(int) :bash:

dopodichè ho pensato di iscrivermi a filosofia :book:
K6cSUfo.png ldTC0c4.png F3RltDf.png ysAWECd.png HXDuJxQ.png hrrH0NX.png gcQdz0o.png VQDZBzt.png wmDuXSk.png kMi7x2A.png 0khmZP7.png qnzN56a.png

#6
mar.co88

mar.co88

    Advanced Member

  • Utente
  • StellaStellaStella
  • 123 Messaggi:
Salve... per quanto riguarda la define l ho fatta usando la .word... ma poi non sono riuscito ad operarvi. es: nell operazione di add o mul come dovevo fare??

#7
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
Quando hai fatto la .word affianco c'avrai fatto n'etichetta no :P?

lw §t0, etichetta(§0)
mul §a0, §t0, 4
li §v0, 9
syscall
move §s0, §v0

e hai la tua bella memoria heap indirizzata in §s0.

#8
mar.co88

mar.co88

    Advanced Member

  • Utente
  • StellaStellaStella
  • 123 Messaggi:
porca miseria... GiX c hai ragione... Io invece andavo ad utilizzara l etichetta e il pcspim mi segnalava errore... ma mannaggia....... :badmood:
Il makefile come ti è andato??

#9
BostonGeorge

BostonGeorge

    Newbie

  • Utente
  • Stella
  • 9 Messaggi:
Ragazzi ma nn si può far presente al prof. che mancava la define, così magari è più clemente visto che io nn ho fatto ne la define ne la malloc sn nella me**a...... :mad:

#10
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
Mah, tanto se il programma gira lo scritto è passato... Il voto magari scende, avrei voluto come minimo un 28 da questo esame visto che non lo trovo poi così difficile...

Marco a me il makefile non funzionava, nel senso che compilava i file in file oggetto, ma non mi creava l'eseguibile... Aggiungendo una -Wall ho notato che c'erano degli errori all'interno dei file stessi. Mo vai a vedere o_O

#11
mar.co88

mar.co88

    Advanced Member

  • Utente
  • StellaStellaStella
  • 123 Messaggi:
Il mio problema ke il programma non girava... mi si bloccava nel momento in cui andavo a fare la mul tra il valore .word e 4... questo mi segnalava.. per il resto credo che ilcodice fosse scritto in maniera correta... speriamo bene...
poi l orale si svolgera x tutti venerdi?? o ci sara qualche partizionamento??

#12
HDM

HDM

    Advanced Member

  • Utente
  • StellaStellaStella
  • 405 Messaggi:
Come la scorsa volta, credo una parte venerdì e un'altra parte un altro giorno, probabilmente non ce la fanno a fare tutti venerdì, ricordoc he ci sono anche gli altri esami oltre ad LLAP, tipo ASD, Fondamenti, Op, BAsi di Dati..
ce ne sono di esami :P
Immagine inviata

#13
mar.co88

mar.co88

    Advanced Member

  • Utente
  • StellaStellaStella
  • 123 Messaggi:
mma saranno loro stessi a stabilire ki dovra farli un gionrno e chi un altro??
o ci si puo metter d accordo??

#14
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
ma su http://www.adinf.unisa.it/ nella pagina dell'esame c'è scritto 17 o.o siamo sicuri?

#15
Mr.Hope

Mr.Hope

    Advanced Member

  • Utente
  • StellaStellaStella
  • 627 Messaggi:
Nn penso sia il 17, altrimenti ce lo avrebbero comunicato...
Immagine inviata

#16
dylzen

dylzen

    Advanced Member

  • Utente
  • StellaStellaStella
  • 185 Messaggi:
mmh c'è qualcosa che non torna, c'è scritto 17/7 sia sulla pagina di llap che in quella di asd, e inoltre i risultati dell'esame di fondamenti sono già usciti... bah :drunk:
K6cSUfo.png ldTC0c4.png F3RltDf.png ysAWECd.png HXDuJxQ.png hrrH0NX.png gcQdz0o.png VQDZBzt.png wmDuXSk.png kMi7x2A.png 0khmZP7.png qnzN56a.png

#17
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
Bè, meglio così o_O

#18
HDM

HDM

    Advanced Member

  • Utente
  • StellaStellaStella
  • 405 Messaggi:
Io non devo fare LLAP ma ASD e vi posso dire che ho chiesto a Percannella appena finito lo scritto e mi ha detto che l'orale è venerdì ovvero il 18.

Non penso che Percannella si sia sbagliato, o almeno spero. O.o
Potete provare a mandargli una mail e chiedere spiegazioni ma ora è tardi mi sa.. :P e poi come correggono in così poco tempo? O.o
Immagine inviata

#19
Ciroxs

Ciroxs

    Newbie

  • Utente
  • StellaStellaStella
  • 1568 Messaggi:

Mah, tanto se il programma gira lo scritto è passato... Il voto magari scende, avrei voluto come minimo un 28 da questo esame visto che non lo trovo poi così difficile...

Marco a me il makefile non funzionava, nel senso che compilava i file in file oggetto, ma non mi creava l'eseguibile... Aggiungendo una -Wall ho notato che c'erano degli errori all'interno dei file stessi. Mo vai a vedere o_O



no, nn penso ke i file siano sbagliati o cn errori.... xk io l'ho fatto il makefile, provato in Dos, e funziona ttt a dovere... crea ttt, e cancella ttt.... :D

ZKU4w.png


#20
HDM

HDM

    Advanced Member

  • Utente
  • StellaStellaStella
  • 405 Messaggi:
Forse hai sbagliato a mettere qualche dipendenza, non so.. tipo nel main c'era include list,h e info.h e tu hai messo solo list.o come prerequisito.. cose del genere, non so. :huh:
Immagine inviata




Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi