fbpx
Skip to main content
  1. Valerio Battaglia
  2. Ingegneria Informatica - Triennale
  3. Mercoledì, 09 Maggio 2007
  4.  Subscribe via email
e quest'ultimo lo apro io :D buon lavoro a tutti..
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
prof non è che domani facciamo una lezioncina su come installare e compilare col mips? :) così uno gli esercizi che fa li verifica :)
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
vediamo SPIM martedi', seconda parte della lezione

prof non è che domani facciamo una lezioncina su come installare e compilare col mips? così uno gli esercizi che fa li verifica
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
lopresti\n
si puo' fare in entrambi i modi. il primo metodo corrisponde a lavorare con gli indici, mentre il secondo corrisponde a lavorare con i puntatori. vedremo che il secondo è migliore (in termini di efficienza con degli esempi a lezione (cosa vera anche in C).

in generale mi interessa che il codice realizzi la stessa funzione. io parto dal codice C perché immagino che per molti di voi sia più semplice. sicuramente non è necessario ne il metodo migliore.


Grazie!!!
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
si puo' fare in entrambi i modi. il primo metodo corrisponde a lavorare con gli indici, mentre il secondo corrisponde a lavorare con i puntatori. vedremo che il secondo è migliore (in termini di efficienza con degli esempi a lezione (cosa vera anche in C).

in generale mi interessa che il codice realizzi la stessa funzione. io parto dal codice C perché immagino che per molti di voi sia più semplice. sicuramente non è necessario ne il metodo migliore.

Grazie!!
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ragazzi dato ke non posso venire neppure domani, oggi a che punto siete arrivati con la slide su Set delle Istruzioni? GRAZIE
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ragazzi dato ke non posso venire neppure domani, oggi a che punto siete arrivati con la slide su Set delle Istruzioni? GRAZIE


praticamente finite, mancavano giusto 3 o 4 slide..
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
[OT]
Se non sono troppo invadente vorrei chiarire una volta per tutte con il Prof Lo Presti e con chi più di me conosce questo argomento la gestione dello stack relativa all'assegno di POO

Il prog di POO ci ha chiesto di creare un programmino che simuli lo scambio di parametri e la gestione del controllo del flusso del programma tra un oggetto e un suo metodo invocato.


Ora quello che vorrei sapere io è questo:
in java creo un oggetto e chiamo un metodo su questo oggetto

Oggetto A= new Oggetto();
A.Somma(int 1, int 2, int3);

Ora lo stack si riempe in questo modo??

Posizione 3---> int 3
Posizione 2---> int 2
Posizione 1---> int 1
Posizione 0---> indirizzo di A (una sorta di return address??)

Se questo fosse giusto il metodo legge lo stack in questo modo??

Legge posizione 3,4,1 facendo il pop()
Legge posizione 0, fa il pop e ritorna il controllo all'oggetto chiamante?

Ora quello che proprio non so è dove mette nello stack il risultato della somma di 1+2+3...

Ringrazio tutti anticipatamente per qualsiasi chiarificazione
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ragazzi ho provato a far girare il primo esercizio datoci dal prof che ha risolto in aula lunedì, ma spim mi dà un'eccezione nella stringa in grassetto:

.text
.globl main

main: addi $s0, $zero, 0
addi $s1, $zero, 0
addi $s5, $zero, 100

For_start: slt $t0, $s1, $s5
beq $t0, $zero, Exit
sll $t1, $s1, 2
add $t1, $t1, $s3
lw $t2, 0($t1)
add $s0, $s0, $t2
addi $s1, $s1, 2
j For_start

Exit: jr $ra
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ragazzi ho provato a far girare il primo esercizio datoci dal prof che ha risolto in aula lunedì, ma spim mi dà un'eccezione nella stringa in grassetto:

.text
.globl main

main: addi $s0, $zero, 0
addi $s1, $zero, 0
addi $s5, $zero, 100

For_start: slt $t0, $s1, $s5
beq $t0, $zero, Exit
sll $t1, $s1, 2
add $t1, $t1, $s3
lw $t2, 0($t1)
add $s0, $s0, $t2
addi $s1, $s1, 2
j For_start

Exit: jr $ra


in $s3 che cosa dovrebbe esserci?
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
$s3 non e' inizializzato in modo oppotuno (anzi e' proprio =0). di conseguenza il lw in questione prova a leggere da una locazione di memoria riservata al sistema operativo, cosa che causa l' eccezione.

bisognerebbe avere un

la $s3, array

.data

array: .word ....

per avere $s3 che riferisce ad un array nel segmento dati.

ragazzi ho provato a far girare il primo esercizio datoci dal prof che ha risolto in aula lunedì, ma spim mi dà un'eccezione nella stringa in grassetto:

.text
.globl main

main: addi $s0, $zero, 0
addi $s1, $zero, 0
addi $s5, $zero, 100

For_start: slt $t0, $s1, $s5
beq $t0, $zero, Exit
sll $t1, $s1, 2
add $t1, $t1, $s3
lw $t2, 0($t1)
add $s0, $s0, $t2
addi $s1, $s1, 2
j For_start

Exit: jr $ra
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
professore, è possibile avere il codice del calcolo del fattoriale completo di main che è stato fatto vedere alla fine in classe? la ringrazio.
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Scusate l'ignoranza...

vorrei sapere come posso fare ad inizializzare i singoli elementi di un array, ossia ad esempio (vi scrivo l'equivalente in C):

A[0] = 5;
A[1] = 12;
...
A[n] = 2;

E' possibile fare una cosa del tipo:

addi $s5,$zero,5 # $s5 = 5
sw $s5,0($t2) # A[0] <- $t2
# faccio lo store con offset 0 di $s5

Oppure esiste qualche altro modo migliore?
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
= 5;
A[1] = 12;
...
A[n] = 2;

E' possibile fare una cosa del tipo:

addi $s5,$zero,5 # $s5 = 5
sw $s5,0($t2) # A[0] <- $t2
# faccio lo store con offset 0 di $s5

Oppure esiste qualche altro modo migliore?


.data
array: .word 0, 11, 14, 3
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
ma come si fa ad allocare una variabile byte in data?

[code type="markup"]
.data
x: .byte 1
[/code]

mi da sempre errore quando apro il file :\
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
problema del byte risolto :)

non vorrei sembrare presuntuoso tantomeno gradasso però vorrei proporvi un esercizio "mirato" all'esonero, della serie --> ecco il codice C, tira fuori il codice Assembly!

il programma è abbastanza simpatico ed è un buon esercizio. io ci ho messo circa 2 ore (è dura riprendere in mano l'assembly dopo anni che non lo usi :P ).

ecco il link! http://lotti.palib.info/triangle.zip
nel file c'è il testo dell'esercizio, il codice in C e il codice in assembly.
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
professore riguardo le dispense sulle procedure aggiornate al 30/5, cosa è stato corretto rispetto a quelle precedenti?
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
qualcuno mi può spiegare per piacere a cosa equivale questa istruzione dell'esempio delle slide?

x: .word 5

cioè,l'etichetta x, cosa ha con quella direttiva??
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Da quello che ho capito io mette il valore 5 nella prima word di memoria,e se è così...perchè fa questa cosa in spim???

lui $1, 4097 [x] ; 7: lw $t1, x # legge x in $t1
lw $9, 0($1) [x]

lo fa anche per Y e Z...
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
Scusate la domanda banale, ma dopo parecchi tentativi non riesco a far partire i programmi. Ho provato a far partre il primo esempio del professore, la semplice somma di due numeri. Una volta richiamato in Spim provo a farlo partire con GO, imposto il valore iniziale a 0x00400000 e la riga iniziale la pongo a 1.

Morale: errore, praticamente ogni volta che esegue un programma trova un errore alla riga successiva: se il mio programma arriva fino all'indirizzo 0x00400004, mi trova errore alla riga 0x00400008, che non esiste nel mio programma.

Sapete come ovviare? Grazie e scusate la banalità, ma dopo il primo avvio credo andrà meglio :wink:
Comment
There are no comments made yet.
Accepted Answer Pending Moderation
tutto risolto grazie, lavorava correttamente e non me ne ero accorto :D
Comment
There are no comments made yet.


There are no replies made for this post yet.
Be one of the first to reply to this post!