Esegue la sommatral'accumulatoreac e Se I=1, ilcontenutodellacelladi memoriailcui indirizzoè



Documenti analoghi
Memorizza il contenuto dell'accumulatore AC nella Se I=0: celladi memoriailcui indirizzoè specificatoda

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

DEC PDP8, III Generazione, '65-'75

Ing. Paolo Domenici PREFAZIONE

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Von Neumann. John Von Neumann ( )

Struttura del calcolatore

Lezione 16: L architettura LC-3

Esempio di moltiplicazione come somma e spostamento

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

2. IL CALCOLATORE A CONTROLLO CABLATO Come abbiamo gia' osservato, l'organizzazione di un calcolatore e' definita dai suoi registri interni, dalle

4 3 4 = 4 x x x 10 0 aaa

CPU. Maurizio Palesi

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Prelievo di un istruzione. Istruzioni macchina. Tipi di istruzioni. Registri principali della CPU e loro ruolo

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

L Assembler Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica

= 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Parte 1. Vettori di bit - AA. 2012/13 1.1

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Aritmetica dei Calcolatori 2

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

SISTEMI DI NUMERAZIONE E CODICI

Informatica. Rappresentazione dei numeri Numerazione binaria

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

Aritmetica dei Calcolatori 1

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008

Alessandro Pellegrini

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Arduino: Programmazione

Architettura del calcolatore

Parte II.2 Elaboratore

Lezione n.9. Introduzione al linguaggio macchina

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Convertitori numerici in Excel

Rappresentazione delle informazioni

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico

Informazione analogica e digitale

ESERCIZI di FONDAMENTI DI INFORMATICA RAPPRESENTAZIONE DEI NUMERI

La macchina programmata Instruction Set Architecture (1)

ESEMPIO 1: eseguire il complemento a 10 di 765

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE

4. Operazioni aritmetiche con i numeri binari

Introduzione al Linguaggio C

Architettura hardware

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Hazard sul controllo. Sommario

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Descrizione di un algoritmo

Informatica Generale 02 - Rappresentazione numeri razionali

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

I sistemi di numerazione

Rappresentazione dei numeri in un calcolatore

Testi di Esercizi e Quesiti 1

Codifica binaria dei numeri relativi

Esercizi per il recupero del debito formativo:

Università degli Studi di Ferrara Corso di Laurea in Informatica A.A. 2007/2008

Architettura degli elaboratori (A)

Programmazione dello Z80

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Appunti sulla Macchina di Turing. Macchina di Turing

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

JPD132. Microprocessore e assembly

Powered by: Relators:

I.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi. Elementi di Assembly 8086

Elementi di Architettura e Sistemi Operativi

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

La Macchina RAM Shepherdson e Sturgis (1963)

Sistemi di Numerazione

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

E una notazione per descrivere gli algoritmi.

Sistemi di Numerazione

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2

Logica e codifica binaria dell informazione

Sottosistema di Ingresso/Uscita (I/O)

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

ASSEMBLER 68K parte 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea in Matematica

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000

Fasi di creazione di un programma

Elementi di Informatica e Programmazione

La Macchina Virtuale

INFORMATICA 1 L. Mezzalira

2.12 Esercizi risolti

Algoritmi e strutture dati. Codici di Huffman

Transcript:

Parte II

AND 104 I, micro-operazioni c 0 t 0 : MAR PC c 0 t 1 : MBR M, PC PC+1 c 0 t 2 : OPR MBR(OP), I MBR(I) q 7 Ic 0 t 3 : R 1 Ciclo di fetch (q 7 +I )c 0 t 3 : F 1 c 1 t 0 : MAR MBR(AD); / 104 da Hex a Bin c 1 t 1 : MBR M; c 1 t 2 : Ciclo di Indirizzamento c 1 t 3 : F 1, R 0; indiretto q 0 c 2 t 0 : MAR MBR(AD); q 0 c 2 t 1 : MBR M; q 0 c 2 t 2 : AC ACAND MBR; c 2 t 3 : F 0; CiclodiExecute

ADD I 001 ADDRESS Esegue la sommatral'accumulatoreac e Se I=0: ilcontenutodellacelladi memoriailcui indirizzoè specificatodaaddress Se I=1, ilcontenutodellacelladi memoriailcui indirizzoè contenutonellacelladi memoriaspecificatadalcampo ADDRESS (indirizzamento indiretto) Il risultatoè salvatoin AC e l'eventualeriportoin E Ciclo di execute: q 1 c 2 t 0 : MAR MBR(AD); trasferiscela parte indirizzodell'istruzione q 1 c 2 t 1 : MBR M; leggel'operando q 1 c 2 t 2 : E-AC AC + MBR; eseguela sommatrambr e AC c 2 t 3 : F 0; passaallafasedi fetch

LDA (Load in AC) I 010 ADDRESS Caricanell'accumulatoreAC Se I=0: ilcontenutodellacelladimemoriailcui indirizzoè specificatodaaddress Se I=1, ilcontenutodellacelladimemoriailcui indirizzoè contenutonellacelladimemoriaspecificatadalcampo ADDRESS (indirizzamento indiretto) Ciclo di execute: q 2 c 2 t 0 : MAR MBR(AD); trasferiscela parte indirizzodell'istruzione q 2 c 2 t 1 : MBR M, AC 0;leggel'operandoe azzeral'accumulatore q 2 c 2 t 2 : AC AC+ MBR; copiambr in AC tramiteunasomma c 2 t 3 : F 0; passa alla fase di fetch

Cosacontiene AC a fine esecuzione? ORG 100/ memorizza il programma a partire dalla cella 100 -- la prima istruzione sarà caricata nella cella di memoria con indirizzo 100 --(notazione esadecimale) LDA A / carica A in AC -- viene caricato in AC il contenuto della cella di memoria etichettata A ADD 104 I / aggiunge ad AC la cella indirizzata dalla cella 104 --viene sommato ad AC il contenuto della cella di memoria il cui indirizzo è -- contenuto nella cella di memoria 104 HLT / termina l'esecuzione -- termina l'esecuzione del programma A, DEC 412 / 412 in decimale, notazione modulo e segno -- cella di memoria etichettata con A contenente il numero decimale 412 HEX 101 / notazione esadecimale in modulo e segno -- cella di memoria contenente l'indirizzo di memoria dove reperire il dato, da -- notare che la cella di memoria 101 contiene l'istruzione "ADD 104 I" che --corrisponde al numero binario 1001000100000100=37536 10 =-28000 compl. 2 END

STA (Store AC) I 011 ADDRESS Memorizza il contenuto dell'accumulatore AC nella Se I=0: celladi memoriailcui indirizzoè specificatoda ADDRESS Se I=1, celladi memoriailcui indirizzoè contenutonellacella di memoria specificata dal campo ADDRESS (indirizzamento indiretto) Ciclo di execute: q 3 c 2 t 0 : MAR MBR(AD); trasferiscela parte indirizzodell'istruzione q 3 c 2 t 1 : MBR AC; trasferisceildatonelmbr q 3 c 2 t 2 : M MBR; memorizzaildato c 3 t 3 : F 0; passaallafasedi fetch

DEC (Decrease) v.1 Vogliamo realizzare l'istruzione che decrementa di 1 il contenutodiunacelladimemoriadenominatain e salviil risultato in una cella di memoria denominata OUT Tale istruzionenon è presentenelset diistruzionidel PDP8 ORG 100 LDA IN ADD X STA OUT HLT X, DEC -1 IN, HEX A OUT, DEC 0 END / aggiungex ad AC, cioèlo decrementadi1 / ilrisultatoè salvatoin OUT / termina l'esecuzione

Linguaggi: macchina e Assembly Label Istruzione Commenti ORG 100 GO, LDA IN /caria IN ADD X /decrementa STA OUT /salva in OUT HLT X, DEC-1 IN, HEX A OUT, DEC 0 END

L Assemblatore In realtà per parlare con il PDP8 dovremmo scrivere i programmi in binario. Su un elaboratore più avanzato, Il linguaggio simbolico Assemblysarà memorizzato in termini di codice ASCII. Supponendo parole di memoria di 16 bit, possiamo memorizzare 2 caratteri per ogni parola. es.: GO, LDA IN sarà memorizzata come: G O 47 4F 0100 0111 0100 1111, <spazio> 2C 20 0010 1100 0010 0000 L D 4C 44 0100 1100 0100 0100 A <spazio> 41 20 0100 0001 0010 0000 I N 49 4E 0100 1001 0100 1110 <spazio> <CR> 20 0D 0010 0000 0000 1101 Un semplice assemblatore lavora in due passi

Codice ASCII

L Assemblatore: passo 1 Nella prima passata viene generata una tabella che mette in corrispondenza gli indirizzi simbolici definiti dall utente con i loro equivalenti binari Viene utilizzato il location counter(lc), una particolare parola di memoria per tener traccia della locazione di memoria assegnata all istruzione o operando che si sta considerando Per convenzione LC vale zero inizialmente Se c e la pseudo istruzione ORG, LC viene modificato Per ogni riga del programma LC viene incrementato La vera e propria transcodifica avviene al passo 2

L Assemblatore: passo 1

L Assemblatore: passo 1 Tabella dei simboli: G O 474F 0100 0111 0100 1111, <spazio> 2C 20 0010 1100 0001 0100 (LC) 0100 0000 0001 0000 0000 X, 582C 0101 1000 0010 1100 <spazio><spazio>2o2o 0001 0100 0001 0100 (LC) 0104 0000 0001 00000100 I N 494E 0100 1001 0100 1110, <spazio> 2C 0 0010 11000001 0100 (LC) 0105 0000 0001 0000 0101 O U 4F 55 0100 1111 0101 0101 T, 542C 0101 0100 0010 1100 (LC) 0106 0000 0001 0000 0110 Tre locazioni di memoria per ogni etichetta

L Assemblatore: passo 2 Le istruzioni vengono tradotte da linguaggio Assemblyin linguaggio macchina. L assemblatore utilizza quattro tabelle: tabella pseudo istruzioni (4 entries: ORG, END, DEC, HEX) tabella istruzioni MRI (8 entries) tabella istruzioni non MRI (16 entries) tabella simboli-indirizzi (ottenuta al passo 1) L assemblatore svolge anche operazioni di controllo della correttezza del codice codice operativo inesistente riferimenti non dichiarati

passo 2

BUN (Uncoditioned Bound) I 100 ADDRESS Trasferisce il flusso del programma all indirizzo specificato Se I=0: dallacelladi memoriailcui indirizzoè specificatoda ADDRESS Se I=1, dallacelladi memoriailcui indirizzoè contenuto nellacelladi memoriaspecificatadalcampo ADDRESS (indirizzamento indiretto) Ciclo di execute: q 4 c 2 t 0 : PC MBR(AD); trasferiscela parte indirizzodell'istruzione q 4 c 2 t 1 : q 4 c 2 t 2 : c 2 t 3 : F 0; passaallafasedi fetch

BSA (Bound Saving Address) I 101 ADDRESS Salva il contenuto del PC nella cella di memoria m il cui indirizzo Se I=0: è specificatodaaddress Se I=1, è contenutonellacelladi memoriaspecificatadalcampo ADDRESS (indirizzamento indiretto) Trasferisce il flusso del programma alla cella di memoria m+1 Ciclo di execute: q 5 c 2 t 0 : MAR MBR(AD), trasferiscel'indirizzom in MAR MBR(AD) PC, trasferisce PC nella cella di memoria m PC MBR(AD) q 5 c 2 t 1 : M MBR; salvambr nellacelladi memoriam q 5 c 2 t 2 : PC PC+1; IncrementaPC, ovverom c 2 t 3 : F 0; passaallafasedi fetch

BSA (Bound Saving Address) Il circuito così schematizzato permette la realizzazione delle prime tre operazioni in parallelo In combinazione con l istruzione BUN, la BSA può essere utilizzata per la realizzazione di chiamate a sottoprogrammi

DEC (Decrease) v.2 ORG 100 LDA ADDRESS / carica ADDRESS in AC BSA ADDRESS / salva PC e salta in ADDRESS --Il contenuto del PC (ovvero l'indirizzo della cella di memoria che contiene l'istruzione HLT) viene salvato in ADDRESS. Contestualmente, il flusso di programma si sposta alla cella di memoria successiva a quella etichettata con ADDRESS HLT ADDRESS, DEC -1 --Inizialmente in ADDRESS è memorizzato il numero -1. Successivamente l'esecuzione dell'istruzione BSA, ADDRESS conterrà l'indirizzo della cella di memoria contenente l'istruzione HLT ADD IN BUN ADDRESS I / salto indiretto --INDIRIZZAMENTO INDIRETTO: viene prima eseguito un ciclo di indirizzamento indiretto, dopodichè il flusso del programma si sposta all'indirizzo di memoria contenuto in ADDRESS IN, DEC 10 END

Chiamataallasubroutine in DEC v.2

ISZ (Increment and Skip on Zero) I 110 ADDRESS Incrementa il contenuto della cella di memoria il cui indirizzo Se I=0: è specificatodaaddress Se I=1, è contenuto nella cella di memoria specificata dal campo ADDRESS (indirizzamento indiretto) Se il risultato è 0, salta l'istruzione successiva Ciclo di execute: q 6 c 2 t 0 : MAR MBR(AD); trasferiscela parte indirizzodell'istruzione q 6 c 2 t 1 : MBR M; leggeilcontenutodellacelladi memoriaindirizzata q 6 c 2 t 2 : MBR MBR+1; incrementailcontenutodi MBR q 6 c 2 t 3 : M MBR, salvanellacellaindirizzatailcontenutodi MBR If (MBR=0) then PC PC+1, incrementapc se MBR è nullo F 0; passaallafasedi fetch

Come simulare un ciclo DO -WHILE START, ORG 100 LDA OUT INC STA OUT ISZ IN BUN START --l'istruzione BUN viene eseguita soltanto se il valore contenuto nella cella di memoria etichettata X è negativo, altrimenti il flusso del programma si sposta direttamente all'istruzione successiva che termina il programma HLT IN, DEC -10 OUT, DEC 0 END

CLA (Clear AC) o 111 1000 0000 0000 Azzera il contenuto dell'accumulatore AC Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 5 : AC 0, azzera AC F 0; passa alla fase di fetch B 5 denota il primo bit di MBR(5-16) che è pari a 1

CLE (Clear E) o 111 0100 0000 0000 Azzerailcontenutodel registroe Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 6 : E 0, azzerae F 0; passaallafasedi fetch

CMA (Complement AC) o 111 0010 0000 0000 Complementa logicamente il contenuto dell'accumulatore AC Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 7 : AC AC', complementalogicamenteilcontenutodi AC F 0; passaallafasedi fetch

DEC (Decrease) v.3 ORG 100 CLA / cancella il contenuto di AC --Il contenuto di AC viene annullato, cioè AC=0. In tal modo si evitano 'sorpese' dovute a valori precedentemente caricati in AC. Ciò si può verificare, per esempio, se l'istruzione DEC che stiamo definendo viene usata all'interno di un altro programma CMA / complementa il contenuto di AC --Il contenuto di AC complementato, ovvero AC=FFFF 16 =111111111111 2 =-1 10 dato che ci si riferisce alla notazione in complemento ADD IN STA OUT --Il risultato stavolta è salvato in una cella di memoria etichettata con OUT anziché lasciato semplicemente in AC HLT IN, DEC 10 OUT, DEC 0 END

CME (Complement E) o 111 0001 0000 0000 Complementa logicamente il contenuto del registro E Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 8 : E E', complementalogicamenteilcontenutodi E F 0; passaallafasedi fetch

CIR (Circulate Right) o 111 0000 1000 0000 Ruota verso destra(cioè verso il bit meno significativo) il contenuto combinato del registro E e dell'accumulatore AC Il bit meno significativo diventa passa al registro E Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 9 : E-AC bit1-e-(ac \bit1), ruotaverso destrae-ac F 0; passaallafasedi fetch

CIL (Circulate Left) o 111 0000 0100 0000 Ruota verso sinistra(cioè verso il bit più significativo) il contenuto combinato del registro E e dell'accumulatore AC Il bit più significativo diventa il nuovo contenuto del registro E Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 10 : E-AC AC-E, ruotaverso sinistrae-ac F 0; passaallafasedi fetch

MUL2, DIV2 ORG 100 LDA IN CIL --Il contenutodell'accumulatore(intesoin binario) vieneruotatodiun bit verso sinistra. Cio' equivale ad effettuare una moltiplicazione per 2. -- Se invece dell'istruzione CIL avessimo utilizzato CIR, allora il contenuto dell'accumulatore(intesoin binario) verrebberuotatodiun bit verso destra. Cio' equivale ad effettuare una divisione per 2 (senza considerare l'eventuale resto). Attenzione al contenuto del registro E. Potrebbe essere opportuno effettuare prima un CLE STA OUT HLT IN, HEX 5 OUT, DEC 0 END

INC (Increase) o 111 0000 0010 0000 Incrementailcontenutoilcontenutocombinatodel registro E e dell'accumulatore AC Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 11 : E-AC E-AC+1, incrementadi 1 E-AC F 0; passaallafasedi fetch

SPA (Skip on Positive AC) o 111 0000 0001 0000 Salta l'istruzione successiva se il contenuto dell'accumulatore AC è positivo Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 12 : If (AC>0) then PC PC+1,incrementaPC se AC > 0 F 0; passaallafasedi fetch

SNA (Skip on Negative AC) o 111 0000 0001 0000 Salta l'istruzione successiva se il contenuto dell'accumulatore AC è negativo Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 13 : If (AC<0) then PC PC+1,incrementaPC se AC < 0 F 0; passaallafasedi fetch

SZA (Skip on Zero AC) o 111 0000 0001 0000 Salta l'istruzione successiva se il contenuto dell'accumulatore AC è 0 Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 14 : If (AC=0) then PC PC+1,incrementaPC se AC = 0 F 0; passaallafasedi fetch

SZE (Skip on Zero E) o 111 0000 0001 0000 Salta l'istruzione successiva se il contenuto del registro E è 0 Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 15 : If (E=0) then PC PC+1,incrementaPC se E = 0 F 0; passaallafasedi fetch

HLT (Halt) o 111 0000 0000 0001 Arrestailsistemaponendoa o ilflag di sistema Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 I c 2 t 3 B 15 : S 0; arrestailsistema F 0; passa alla fase di fetch

INP (Input di un carattere) 1 111 1000 0000 0000 Carica in AC un carattere dal buffer di tastiera Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 Ic 2 t 3 B 5 : AC ASCII(keyboard), mettein AC ilcodiceascii del carattere digitato da tastiera :F 0; passaallafasedi fetch

OUT (Output di un carattere) 1 111 0100 0000 0000 Visualizzasulterminalepredefinitoilcontenutodi AC interpretato come codice ASCII Ciclo di execute: q 7 c 2 t 0 : q 7 c 2 t 1 : q 7 c 2 t 2 : q 7 Ic 2 t 3 B 6 : Terminal AC, visualizzasu Terminal ilcarattere rappresentatoin ASCII in AC F 0; passaallafasedi fetch

I/O-I SKI Salta l'istruzione successiva se il flag di ingresso è positivo SKO Salta l'istruzione successiva se il flag di uscita è positivo ION Abilita Interrupt IOF Disabilita Interrupt 1 111 0010 0000 0000 1 111 0001 0000 0000 1 111 0000 1000 0000 1 111 0000 0100 0000

ISA del PDP 8 Memory Reference Instructions Simbolo Ind. D/I OPR Descrizione AND 0/1 000 And logico tra AC e cella indirizzata ADD 0/1 001 Somma tra AC e cella indirizzata LDA 0/1 010 Carica in AC il contenuto della cella indirizzata STA 0/1 011 Salva nella cella indirizzata il contenuto di AC BUN 0/1 100 Salto incondizionato alla cella indirizzata BSA 0/1 101 Salvataggiodel PC nella cella indirizzata e salto alla cella successiva a quella indirizzata ISZ 0/1 110 Incremento di 1 del contenuto della cella indirizzata e se 0, allora salta l istruzione successiva

ISA del PDP 8 Register Reference Instructions Simbolo Codice Descrizione CLA 0111 100000000000 Azzerail contenuto di AC CLE 0111 010000000000 Azzera il contenuto del registro E CMA 0111 001000000000 Complementa logicamente il contenuto di AC CME 0111 000100000000 Complementa logicamente il contenuto di E CIR 0111 000010000000 Sposta verso dersoi bit in E-AC CIL 0111 000001000000 Sposta verso sinistra i bit in E-AC INC 0111 000000100000 Incrementa di 1 il contenuto diac SPA 0111 000000010000 Salta l istruzione successiva se AC>0 SNA 0111 0000 0000 1000 Salta l istruzione successiva se AC<0 SZA 0111 0000 0000 0100 Salta l istruzione successiva se AC=0 SZE 0111 0000 0000 0010 Salta l istruzione successiva se E=0 HLT 0111 0000 0000 0001 Arresta il sistema

ISA del PDP 8 -I/O Instructions Simbolo Codice Descrizione INP 1111 100000000000 Carica in AC il codice ASCII di un carattere in input OUT 1111 010000000000 Output di un carattere il cui codice ASCII è in AC SKI 1111 001000000000 Salta l istruzione successiva se flag di input =1 SKO 1111 000100000000 Salta l istruzione successiva se flag di output =1 ION 1111 000010000000 Abilita interrupt IOF 1111 000001000000 Disabilita interrupt