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

errore sull'esercizio


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

#1
tr3mendo

tr3mendo

    Member

  • Visitatore
  • StellaStella
  • 25 Messaggi:
ragazzi sapete dirmi come mai quando eseguo "Esercizio.txt" (ovviamente convertito in .asm) preso dalla pagina del professore, in pcsim mi viene fuori il seguente errore?: spim: (parser) syntax error on line on 376 of file "c:\Documents........." muli $t3, $s2, 4 #offset indmin.

p.s. pcspim è configurato correttamente.
grazie in anticipo. ciao.



#2
Peppeweb

Peppeweb

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1096 Messaggi:
Ciao, se è l'esercizio che facemmo con Conte con il Selection Sort allora è quello che è sbagliato.
Ci sono degli errori nella Selection e nella Cercamin, per questo non funziona.
...Per aspera sic itur ad astra...
Galaxy S4
iPhone5S

#3
tr3mendo

tr3mendo

    Member

  • Visitatore
  • StellaStella
  • 25 Messaggi:
Capisco, grazie. Allora cambio la domanda, c'è qualcuno che ha corretto questo esercizio e magari vuole metterlo qua sopra? :-D

Grazie ancora. Ciao.

#4
Peppeweb

Peppeweb

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1096 Messaggi:
Telo allego io, anche se comunque ti consiglio di fartelo da te in vista dell'esame. ;)

File allegato


...Per aspera sic itur ad astra...
Galaxy S4
iPhone5S

#5
aRbok

aRbok

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1517 Messaggi:

ragazzi sapete dirmi come mai quando eseguo "Esercizio.txt" (ovviamente convertito in .asm) preso dalla pagina del professore, in pcsim mi viene fuori il seguente errore?: spim: (parser) syntax error on line on 376 of file "c:\Documents........." muli $t3, $s2, 4 #offset indmin.


(ignorando il fatto che ci sono errori sulla prova di conte)

anche a me pc spim mi ha sempre dato errore di sintassi sulla muli, pur provando più di un programma, e ho dovuto sempre caricare l'immediato in un registro temporaneo ed eseguire una mul normale....adesso non ricordo se esiste o meno la muli o c'è solo la mul come accade per la div....

peppeweb,tu che ne pensi?ci hai fatto caso anche tu che la muli dà sempre errore?
Fai ciò che vuoi : sarà tutta la Legge. Amore è la Legge, Amore sotto la Volontà.

#6
tr3mendo

tr3mendo

    Member

  • Visitatore
  • StellaStella
  • 25 Messaggi:

Telo allego io, anche se comunque ti consiglio di fartelo da te in vista dell'esame. ;)


Ovviamente mi eserciterò. Grazie comunque peppeweb, sei stato fulmineo. ciao.

#7
Peppeweb

Peppeweb

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1096 Messaggi:
Per il problema della MULI la soluzione è semplice, al contrario dell'add-addi, l'struzione mul accetta anche un immediato come terzo "parametro" . La stessa cosa vale per la Rem, e in generale penso anche con altre istruzioni del formato immediate.

Figurati tremendo ;)
...Per aspera sic itur ad astra...
Galaxy S4
iPhone5S

#8
aRbok

aRbok

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1517 Messaggi:

Per il problema della MULI la soluzione è semplice, al contrario dell'add-addi, l'struzione mul accetta anche un immediato come terzo "parametro" . La stessa cosa vale per la Rem, e in generale penso anche con altre istruzioni del formato immediate.

Figurati tremendo ;)



scusami peppe,ma cos'è sta Rem? e cosa fa? io non l'ho mai sentita nominare...ma l'hai vista sempre dalle slide del MIPS?
Fai ciò che vuoi : sarà tutta la Legge. Amore è la Legge, Amore sotto la Volontà.

#9
Peppeweb

Peppeweb

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1096 Messaggi:

Per il problema della MULI la soluzione è semplice, al contrario dell'add-addi, l'struzione mul accetta anche un immediato come terzo "parametro" . La stessa cosa vale per la Rem, e in generale penso anche con altre istruzioni del formato immediate.

Figurati tremendo ;)



scusami peppe,ma cos'è sta Rem? e cosa fa? io non l'ho mai sentita nominare...ma l'hai vista sempre dalle slide del MIPS?

è un'istruzione del mips che fa la divisione tra due registri e ti mette il resto nel primo registro... ci sta ci sta o almeno credo perchè non ho usato solo le slide di DI SANTO come fonte
...Per aspera sic itur ad astra...
Galaxy S4
iPhone5S

#10
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
Ragazzi mi sto facendo da capo questo esercizio. Gli ho dato un'occhiata sommaria prima di cominciare e ho visto che tratta il main come se fosse una funzione chiamata da qualche altro programma superiore <.<

Siccome non ero presente alla lezione del 12, qualcuno si ricorda qual era il concetto di fondo? Dobbiamo iniziare SEMPRE un main come se fosse stato chiamato da una istanza a noi sconosciuta o è solo un esempio?

Altra cosa, gli errori che citavate prima in questa esercitazione, sono nel codice C o c'è stato uno sbaglio nell'assembly?

#11
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
#_____void StampaVettore(int v[], int r){
#______int i;
#
#______for(i=0; i#_______printf("%d\t",v[i]);
#______printf("%d"); <--- Scommetto che questo nella printf doveva essere uno /n ._.
#______}

#12
Ciroxs

Ciroxs

    Newbie

  • Utente
  • StellaStellaStella
  • 1568 Messaggi:

#_____void StampaVettore(int v[], int r){
#______int i;
#
#______for(i=0; i#_______printf("%d\t",v[i]);
#______printf("%d"); <--- Scommetto che questo nella printf doveva essere uno /n ._.
#______}


No, no, nn uno /n, ma uno \n.... :D

ZKU4w.png


#13
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
D'oh :ph34r:

#14
Peppeweb

Peppeweb

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1096 Messaggi:

Ragazzi mi sto facendo da capo questo esercizio. Gli ho dato un'occhiata sommaria prima di cominciare e ho visto che tratta il main come se fosse una funzione chiamata da qualche altro programma superiore <.<

Siccome non ero presente alla lezione del 12, qualcuno si ricorda qual era il concetto di fondo? Dobbiamo iniziare SEMPRE un main come se fosse stato chiamato da una istanza a noi sconosciuta o è solo un esempio?

Altra cosa, gli errori che citavate prima in questa esercitazione, sono nel codice C o c'è stato uno sbaglio nell'assembly?

Se ho capito la domanda la risposta è semplice, in pratica anche il main è visto come un sottoprogramma ed essendo il linguaggio sequenziale allora tu mettendo il main come primo sottoprogramma automaticamente viene eseguito per prima
...Per aspera sic itur ad astra...
Galaxy S4
iPhone5S

#15
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
Cerco di essere più chiaro:

Dall'esercitazione in aula dei giorni 12 e 15
[uso il § al posto del dollaro, altrimenti si attivano i simboli matematici :bash: ]
__start:
main:
# PROLOGO
addi §sp, §sp, -52
sw §fp, 52(§sp)
sw §ra, 48(§sp) <--- il mio dubbio*
sw §s0, 44(§sp)
addi §fp, §sp, 52


* Qui nel prologo stiamo mettendo da parte lo spazio nello stack frame del main per allocare il vettore, inoltre però stiamo salvando il frame pointer, il registro s0 e il return addres, esattamente quello che viene imposto al CHIAMATO dalla convenzione.
Significa quindi che stiamo lavorando in un regime più ampio, quindi il nostro programma è effettivamente una funzione che è stata chiamata da qualcosa che non conosciamo?

Amplio la domanda. All'esame dovremo iniziare la nostra traduzione assembly con l'esecuzione del secondo passo della convenzione, come se la nostra funzione main sia stata in effetti chiamata, o iniziamo da capo?

Chiedo venia per la confusione :notworthy:

#16
Peppeweb

Peppeweb

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1096 Messaggi:
Ciao cercherò di risponderti brevemente.
Con il prologo tu allochi lo spazio sullo stack per il record di attivazione, quindi per tutti gli oggetti che ci devono essere inseriti.
Ora, per quanto riguarda le definizioni dei vari parametri tipo frame pointer etc ti consiglio di leggerti quel capitolo del libro ( c'è un topic apposito ) .
Si, in praticap er rispettare il concetto di modularità ogni funzione viene vista come oggetto a se stante.
Come ti ho già scritto, anche il main deve essere creato come gli altri sottoprog, niente di più, niente di meno. Tuttavia essendo il codice marcato con l'etichetta main il primo pezzo dopo __start automaticamente verrà eseguito senza nessuna chiamata a priori.
Se ti vedi la prova sul merge sort di giugno ( tanto per dirne una ) capirai subito
Spero di essere stato chiaro
...Per aspera sic itur ad astra...
Galaxy S4
iPhone5S

#17
GiX

GiX

    Advanced Member

  • Utente
  • StellaStellaStella
  • 108 Messaggi:
Chiarissimo Peppe, il capitolo di cui parli è quel pdf che hai uppato tu su rapidshare vero? E' il mio prossimo obiettivo, poi ho qualche dubbio sulle ultime lezioni, alle quali non ero presente (debugger, Makefile, GNU gcc), ma penso che nei prossimi giorni aprirò un topic apposta o_O

#18
Peppeweb

Peppeweb

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1096 Messaggi:

Chiarissimo Peppe, il capitolo di cui parli è quel pdf che hai uppato tu su rapidshare vero? E' il mio prossimo obiettivo, poi ho qualche dubbio sulle ultime lezioni, alle quali non ero presente (debugger, Makefile, GNU gcc), ma penso che nei prossimi giorni aprirò un topic apposta o_O

Sisi bravo proprio quello XD

ok ciao
...Per aspera sic itur ad astra...
Galaxy S4
iPhone5S




Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi