[2° COMPITINO] Aule Clicca QUI per vedere il messaggio nel forum |
Kira82 |
Qualcuno sa dirmi se la suddivisione delle aule è come nel primo compitino..o non c'è..o dove posso trovare info relative a questo..
grazie |
SexOnTheBeach |
Secondo me (e i miei soci) siamo tutti in aula 405... tanto saremo una cinquantina... :-D
Ciao |
SexOnTheBeach |
Qualcuno sa spiegarmi perchè, quando codifico le istruzioni da assembly a linguaggio macchina, nel scrivere l'offset devo togliere i due bit finali (e/o i due iniziali??).... e in base a che cosa decido di toglierli?? E se mi vengono diversi da (00) ?? :?
Sto impazzendo... :shock: |
Ariok |
se intendi lo shift a sinistra.... va fatto per convertire l'informazione da parole a byte ( spostare di due a sinix e' come moltiplicare per 4).
Non e' che togli gli ultimi due bit... sposti tutto di 2 bit a sinistra e quindi rimangono due spazi "vuoti" che vanno riempiti con zeri...non so se e' quello che stai chiedendo tu pero' :P |
SexOnTheBeach |
Originally posted by Ariok
se intendi lo shift a sinistra.... va fatto per convertire l'informazione da parole a byte ( spostare di due a sinix e' come moltiplicare per 4).
Non e' che togli gli ultimi due bit... sposti tutto di 2 bit a sinistra e quindi rimangono due spazi "vuoti" che vanno riempiti con zeri...non so se e' quello che stai chiedendo tu pero' :P
Si... penso che sia quello che cercavo... :-D
Comunque nella lezione 16, alla pagina 12, slide 23/54, c'è un esempio con una beq:
beq $s1 , $s2 , 100
- allora, 100 in binario è = 1100100 , giusto?!
- perchè nel campo "indirizzo" mi rimane solo 11001 e mi dice "codifica su 18 bit", quando in realtà sono 15 :
(00) 000 0000 0001 1001 (00)
...non ne capisco i passaggi... :sad:
-se avessi avuto 5 da indirizzare, cosa facevo?? avevo 101 e gli dovevo togliere lo 01 finale...?? :shock: :?
ps:con le istruzioni di tipo J ne capisco ancora meno...:evil: |
Ariok |
uhm forse ho capito cosa non ti e' chiaro.. provo a spiegarti quello che ho capito io.
1° non "togli" gli utlimi due bit ...ma li sposti...
guarda la slide 25/40 della lezione 16 per avere idea di come e' composto il campo indirizzo.
2° IMPORTANTE se devi rappresentare '5' su 16 bit ... non scrivi 101... ma :
0000 0000 0000 0101 ---->che shiftato di 2 a sinistra diventa
0000 0000 0001 0100 = 20 in decimale (5 * 4)
3° quel '18' di cui parli e' riferito a parole... non a bit.(slide 27/40 della lezione 16) ora sinceramente non mi sono messo a fare i calcoli pero' penso che voglia far notare.. che dato che la beq fa riferimento a PAROLE di distanza dal PC ... si possono fare salti molto piu' distanti piuttosto che partendo da un indirizzo uguale a 0.
Quindi nello stesso numero di bit riesci a far riferimento a indirizzi di memoria alti..proprio per i lfatto che no nfai riferimento a un indirizzo... ma all offset (+ o -) dal PC
4° per quanto riguarda le jump e' molto piu' semplice di quello che sembra.... ricordati che parti da 26 bit infatti nelle jump il campo address e' di 26 bit.. quindi shifti di due a sinistra... e ti ritrovi con 2 bit in piu' (in questo caso la differenza e' che non mantieni lo stesso numero di bit) a questo punto dato che devi far riferimento a un indirizzo a 32 prendi i 4 bit piu' significativi del PC e li metti davanti ai 28 bit di prima.
Non mi e' semplicissimo spiegare ,perche' non ho ancora chiari parecchi concetti, spero di essere stato un minimo utile :P
ciauu
Ariok |
|
|
|