Welcome to EverybodyWiki ! Sign in or sign up to improve or create : an article, a company page or a bio (yours ?)...


Users account were merged into the english everybodywiki. You must logIn again.

LC-3

Da EverybodyWiki Bios & Wiki.


Template:Stub LC-3, in precedenza noto come LC-2, è un microprocessore implementato a livello teorico e descritto nel libro di testo, adottato da numerosi corsi universitari, Introduction to Computing Systems: From Bits and Gates to C and Beyond, 2/e, di Yale N. Patt e Sanjay J. Patel.[1]

Teoria[modifica | modifica wikitesto]

LC-3 è un processore con 8 registri d'uso generali, ognuno da 16 bit, e dotato di program counter, instruction register, memory address register, memory data register e di flag che notificano se l'ultima operazione del sistema ha dato risultato positivo, negativo o pari a zero.

L'ISA del processore è composto da 16 istruzioni, usando 4 bit per l'opcode. L'ALU è molto semplice e supporta solamente l'operazione di AND, NOT e di somma, che però con le leggi di De Morgan permettono di realizzare qualunque porta logica. [2]

Memoria[modifica | modifica wikitesto]

La memoria di lavoro dell'LC-3 è composta da 64k celle da 16 bit. Le celle sono così divise[3]:

Indirizzi Uso
x0000 - x00FF Tabella dei vettori trap
x0100 - x01FF Tabella dei vettori interrput
x0200 - x2FFF Sistema operativo
x3000 - xBFFF Codice utente e stack
xC000 - xFDFF Output video
xFE00 - xFFFF Indirizzi dei device

Operazioni[modifica | modifica wikitesto]

Sintassi generale[modifica | modifica wikitesto]

LC-3 mette come primo operando il registro di destinazione (RD) e solo successivamente i registri sorgente (RS), base (RB) o eventuali costanti immediate.

Operazioni logiche[modifica | modifica wikitesto]

ADD[modifica | modifica wikitesto]

L'operazione ADD si può effettuare tra due registri o tra un registro e una costante immediata da 5 bit. La sintassi è

ADD RD,RS,RS ; RD = RS + RS somma tra registri
ADD RD,RS,#N ; RD = RS + N somma immediata

AND[modifica | modifica wikitesto]

L'operazione AND si può effettuare tra due registri o tra un registro e una costante immediata da 5 bit. La sintassi è:

AND RD,RS,RS ; RD = RS AND RS
AND RD,RS,#N ; RD = RS AND N

NOT[modifica | modifica wikitesto]

L'operazione NOT nega il registro scelto come operando. La sintassi è:

NOT RS,RD ; RS = NOT RD

Operazioni di trasferimento[modifica | modifica wikitesto]

Operazioni di controllo[modifica | modifica wikitesto]

Pseudo-operandi[modifica | modifica wikitesto]

Gli pseudo-operandi sono adoperati dall'assembler per creare specifiche funzioni e sono:

  • .orig: Segnala l'inizio del programma e ne dichiara la locazione iniziale
  • .end: Segnala la fine del programma
  • .fill: Riempie la locazione di memoria col valore dato
  • .blkw: Crea una zona di memoria contigua disponibile al programmatore
  • .stringz: Riserva una locazione di memoria per una stringa data

Implementazioni[modifica | modifica wikitesto]

Non esistono implementazioni reali del processore LC-3, che resta meramente teorico: Per la didattica vengono usati vari simulatori scritti in vari linguaggi: Oltre al simulatore ufficiale del libro di testo sono disponibili implementazioni in Java per varie piattaforme, come Windows e Unix.[4]

Collegamenti esterni[modifica | modifica wikitesto]

Note[modifica | modifica wikitesto]


Questo articolo wiki "LC-3" è da Wikipedia