Architettura degli elaboratori - LC2
Torna alla pagina di Architettura degli elaboratori
Questa pagina è stata aggiornata GRAZIE agli appunti che AVETE INVIATO nel periodo di chiusura della sezione UniCrema!! È SERVITA A QUALCOSA, NO?! ;)
:: 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 binario preceduti da una b, 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
|