cerca
Architettura degli elaboratori - LC2
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Uni.ADE-LC2 History

Hide minor edits - Show changes to output

Changed line 54 from:
* Le cifre possono essere scritte in bit preceduti da una b, in esadecimale preceduti da una x, o in decimale preceduti da '''#'''.
to:
* Le cifre possono essere scritte in binario preceduti da una b, in esadecimale preceduti da una x, o in decimale preceduti da '''#'''.
Changed line 54 from:
* Le cifre possono essere scritte in bit, in esadecimale preceduti da una x, o in decimale preceduti da '''#'''.
to:
* Le cifre possono essere scritte in bit preceduti da una b, in esadecimale preceduti da una x, o in decimale preceduti da '''#'''.
Added lines 1-62:
(:title Architettura degli elaboratori - LC2:)
[[Torna alla pagina di Architettura degli elaboratori->Uni.Architettura degli elaboratori]]
----

>>evvai<<
Questa pagina è stata aggiornata GRAZIE agli appunti che AVETE INVIATO nel periodo di chiusura della sezione UniCrema!! '''''È SERVITA A QUALCOSA, NO?!''''' [++;)++]
>><<

%titolo%''':: Architettura degli elaboratori - LC2 ::'''

Qui c'è un prontuario per l'LC2.

!!Registri della CPU
* Da '''R0''' a '''R7''', '''GPR''' cioè i registri per le normali operazioni
* '''CC''', '''Condition Code''' cioè il segno dell'ultimo numero scritto in un registro (N, Z o P)
* '''PC''', '''Program Counter''' cioè l'indirizzo dell'ultima operazione eseguita (per saper quale eseguire dopo)

!!Istruzioni operative (Operazioni logiche)
* '''AND DR,SR1,SR2''' – Scrive in DR il prodotto logico bit a bit dei valori contenuti in SR1 e SR2
* '''AND DR,SR1,Imm5''' – Scrive in DR il prodotto logico bit a bit di SR1 e 0000 0000 000 imm5
* '''ADD DR,SR1,SR2''' – Scrive in DR la somma logica di SR1 e SR2
* '''ADD DR,SR1,Imm5''' – Scrive in DR la somma logica di SR1 e 0000 0000 000 imm5
* '''NOT BR,DR''' – Scrive in DR la negazione logica di BR

!!Istruzioni di trasferimento (Save e Load da celle a cpu e viceversa)
* '''LEA DR,label''' – Carica in DR l'indirizzo rappresentato dalla label, rimanendo nella stessa “pagina”
* '''LD DR,label''' – Carica in DR il contenuto della cella che si trova all'indirizzo rappresentato dalla label
* '''LDI DR,label''' – Carica in DR il contenuto della cella che si trova all'indirizzo contenuto nella label
* '''LDR DR,BR,index6''' – Carica in DR il contenuto della cella all'indirizzo BR+0000 0000 00 index6


* '''ST SR,label''' – Salva nell'indirizzo rappresentato dalla label il contenuto di SR
* '''STI SR, label''' – Salva nell'indirizzo rappresentato dalla label il contenuto della cella il quale indirizzo è scritto in SR (simile a LDI, serve per scrivere in tutte le celle anche fuori dalla pagina)
* '''STR SR,BR,index6''' – Salva nella cella BR + 0000 0000 00 index6 il contenuto di SR

!!Istruzioni di controllo (Salti a istruzioni o sottoprogrammi)
* '''BR [NZP] label''' – Esegue un salto all'indirizzo della cella rappresentata da label se si verifica la condizione rappresentata dallo scrivere N e/o Z e/o P (si possono scrivere da una a tutte e 3 le lettere). Se l'ultimo valore scritto in un registro è negativo si verifica N, P se positivo, Z se nullo.
* '''JSR label''' – Scrive il PC in R7 ed esegue un salto incondizionato all'indirizzo rappresentato da label
* '''JSRR BR,index6''' – Scrive il PC in R7 ed esegue il salto all'indirizzo BR + 0000 0000 00 index6 (per andare ad ogni cella anche non nella pagina corrente come invece fa JSR)
* '''RET''' – La prossima istruzione eseguita sarà quella contenuta nella cella con indirizzo scritto in R7
* '''RTI''' – Ritorno da un interrupt
* '''TRAP vect8''' – Scrive PC in R7 e la prossima istruzione eseguita sarà quella contenuta in vect8
* '''TRAP x21''' – Scrive su console il carattere ASCII rappresentato da R0
* '''TRAP x23''' – Scrive in R0 il valore del carattere ASCII preso in input da console
* '''TRAP x25''' – Arresta il programma

!!Pseudo istruzioni per l'assembler
* '''.orig''' – inizio del programma, non vuole label davanti
* '''.end''' – fine del programma, non vuole label davanti
* '''(label) .blkw N''' – riserva un array di N parole che potranno esser usate dal programma (variabili)
* '''(label) .fill X''' – scrive nella cella la costante X (non ci si potrà quindi scrivere dopo)

!!Simbologia e Note
* Le cifre possono essere scritte in bit, in esadecimale preceduti da una x, o in decimale preceduti da '''#'''.
* Ogni riga può essere preceduta da una '''label''', un'etichetta a cui si ci potrà riferire con istruzioni del programma al posto dell'indirizzo delle celle (ovviamente non potrà esser duplicata).
* '''DR''', '''SR''' e '''BR''' = Registro di destinazione, “sorgente” e base.
* '''Imm5''' = valore da -16 a +15 oppure 5bit da usare nell''''AND''' e nell''''ADD'''.
* '''index6''' = valore da -32 a +31 oppure 6bit da sommare ad un '''BR'''.
* '''vect8''' = 8bit per andare ad un sottoprogramma nelle prime 256 celle.

----
[[Torna alla pagina di Architettura degli elaboratori->Uni.Architettura degli elaboratori]]