Intel 8086
Da Wikipedia, l'enciclopedia libera.
L'Intel 8086 è un microprocessore a 16 bit progettato dalla Intel nel 1978, che diede origine all'architettura x86. È basato sull'8080 e sull'8085 (è compatibile con l'assembly dell'8080), con un insieme di registri simili, ma a 16 bit. L'unità di interfaccia con il bus (detta BIU da Bus Interface Unit) passa le istruzioni all'unità di esecuzione (detta EU da Execution Unit attraverso una coda di prefetch, in modo che il fetch e l'esecuzione delle istruzioni fosse contemporaneo – una forma primitiva di pipelining (le istruzioni dell'8086 avevano una dimensione tra 1 e 4 byte).
Ha quattro registri a 16 bit per uso generico, a cui si può accedere come se fossero otto registri a 8 bit, e quattro registri a 16 bit di indice (incluso lo stack pointer). I registri per i dati sono spesso utilizzati implicitamente dalle istruzioni, complicando l'uso degli stessi per memorizzare valori temporanei. Ha uno spazio di indirizzamento a 16 bit per l'I/O (cioè può accedere a 65.536 dispositivi di I/O a 8 bit e dispone di una tabella di vettori per gli interrupt fissa. La maggior parte delle istruzioni possono accedere ad una sola locazione di memoria, perciò uno degli operandi deve essere un registro. Il risultato viene memorizzato in uno degli operandi.
Ci sono anche quattro registri per i segmenti che possono essere calcolati dai registri di indice. I registri di segmento permettono alla CPU di accedere ad un megabyte di memoria in un modo particolare. Invece di fornire i byte mancanti, come nella maggior parte dei processori che supportano la segmentazione, l'8086 fa uno shift a sinistra di 4 bit del registro di segmento e lo somma all'indirizzo. Il risultato è che i segmenti si sovrappongono, il che è stato considerato come un indice di cattiva progettazione da molti sviluppatori. Anche se questo fu un vantaggio per la programmazione in linguaggio assembly, dove il controllo sui segmenti è completo, causò confusione nei linguaggi che fanno molto uso dei puntatori (come ad esempio il linguaggio C). Rese difficile una rappresentazione efficiente dei puntatori e rese possibile avere due puntatori con valori diversi ma che puntano ad una stessa locazione di memoria. Inoltre questo schema rese difficile aumentare lo spazio di indirizzamento a più di un megabyte. In effetti fu aumentato cambiando lo schema di indirizzamento nell'Intel 80286.
Il processore ha una velocità di clock tra i 4,77 (nei primi pc IBM) e i 10 MHz.
Tempi di esecuzione in cicli (stime):
- addizione: 3–4 (registri), 9+IE–25+IE (accesso in memoria)
- moltiplicazione: 70–118 (registri), 76+IE–143+IE (accesso in memoria)
- copia valori: 2 (registri), 8+IE–14+IE (accesso in memoria)
- salto "near": 11–15 (registri), 18+IE (accesso in memoria)
- salto "far": 15 (registri), 24+IE (accesso in memoria)
IE: tempo per calcolare l'indirizzo effettivo, tra i 5 e i 12 cicli
L'8086 non prevede nessuna istruzione per i calcoli in virgola mobile, ma può essere collegato ad un coprocessore matematico per aggiungere questa caratteristica. Lo standard era l'Intel 8087, ma produttori come Weitek offrirono presto alternative con prestazioni superiori.
L'8086 fu clonato dai processori NEC V20, V25 e V30.
[modifica] Microcomputer che usano l'8086
Il primo microcomputer commerciale costruito utilizzando l'8086 fu il Mycron 2000.
Anche la IBM Displaywriter, una macchina per la scrittura di testi, utilizzava la 8086. I PC IBM utilizzavano la versione a 8 bit, l'8088.
[modifica] Collegamenti esterni
Articolo basato su Intel 8086 da FOLDOC, utilizzato con licenza.
Lista dei microprocessori Intel | |
---|---|
Famiglia 4 bit/8 bit: 4004 | 4040 | 8008 | 8080 | 8085 Famiglia 16 bit: 8086 | 8088 | 80186 | 80286 | ![]() |
Famiglia 32 bit: 80386 | 80486
|