Il µP Intel 8086
All’attenzione del
Professor Claudio Gatto
Marco Lettieri
3 C Informatica
A.S. 2009/2010
Brevi cenni storici
Il microprocessore 8086 fece il suo ingresso nel 1978.
Aveva un bus dati a 16 bit ed era stato realizzato
completamente in America con la tecnologia HNMOS (
ossia N- Channel Silicon Gate ).
Alla fine degli anni ’70 i microprocessori erano tutti con un
bus dati a 8 bit e un bus indirizzi a 16 e non erano molto
versatili proprio per questo motivo; con l’avvento del
microprocessore 8086 della Intel si aveva una potenza
molto maggiore e una versatilità migliore dei
precedenti,quindi molte più locazioni di memoria (erano
circa 1.048.576 ) e uno spazio di indirizzamento pari a
1Mbyte.
L’ 8086 ha 29.000 transistor e opera a 5 Mhz.
La sua struttura è anche detta “dual in line” ossia due file
di piedini parallele.
Sono 20 piedini per
lato, 40 in totale
Registri
Possiede tre tipi di registri:
• Registri di dati
• Registri puntatori
• Registri segment
Registri Dati
I registri dati sono
AX (registro accumulatore),
BX (registro base),
CX (registro contatore) e
DX (registro dati).
Possono essere usati come registri da 16
bit o dividerli in parti parti da 8 bit
ciascuna: bassa(ad esempio AL(Low)) e
alta(AH(high)).
Registri Puntatori
IP(Puntamento d’istruzione) che contiene
il puntatore dell’istruzione da seguire,
come se fosse un segnalibro.
SP(Puntamento di Pila(Stak Pointer)) che
contiene il puntatore alla testa dello stack.
BP(Puntatore di base) è utilizzato come
base per accedere allo stack.
SI(Indice della sorgente) e DI(Indice della
destinazione).
Registri Segmento
CS,DS,ES e SS.
Sono registri che generano gli indirizzi
fisici per fare accesso alla memoria.
CS contiene il puntatore d’inizio del
segmento codici, DS il puntatore d’inizio
del segmento dati, ES di dato
supplementare e SS di stack.
In altre parole i registri segmento
individuano dove trovare i vari segmenti.
Il registro dei Flag
Esistono due tipi di flag:
Flag di stato e flag di controllo.
OF (OVERFLOW FLAG) indica l’eccedenza in un calcolo;
DF (DIRECTION FLAG) indica, nelle operazioni di manipolazioni delle stringhe
la direzione;
IF (INTERRUPT FLAG);
TF (TRAP FLAG) consente l’esecuzione delle interruzioni “passo passo” per il
debug;
SF (SIGN) indica il segno del risultato;
ZF (ZERO) indica se il risultato vale o no 0;
AF (AUXILIARY CARRY FLAG) è usato nelle operazioni con BCD;
PF (PARITY FLAG) indica se il risultato è pari;
CF (CARRY FLAG) indica se c’è riporto dall’operazione precedente.
Il flag può essere 0 o 1: se vale 0 la condizione non è verificata, 1 se lo è (ad
esempio se CF vale 0 vuole dire che il risultato dell’operazione precedente
non ha riporto, se invece vale 1 lo ha.)
I principali vantaggi di questa segmentizzazzione sono:
• Spazio di indirizzamento pari a 1Mbyte e inidirizzi a 16 bit.
• Separazione tra dati,codice e stack e quindi la possibilità di
di avere più segmenti dati,codice e stack.
• Possibilità di sovrapporre i segmenti.
BIU (Bus Interface Unit)
•
•
•
•
La BIU è un sottosistema che gestisce a
tutti i dati e alle istruzioni provenienti (e
verso) l’esterno.
Gestisce quindi anche:
Il fetch delle istruzioni;
La lettura e scrittura dei risultati delle
operazioni aritmetiche;
Generazione degli indirizzi;
L’accodamento delle istruzioni.
La BIU lavora parallelamente con la
EU(executive unit) che è il
sottoprogramma che esegue i calcoli.
Insieme eseguono l’operazione di
“prefetch” che carica in via preventiva le
istruzioni dalla memoria e le memorizza
nella coda delle istruzioni.
FINE
Scarica

Il µP Intel 8086