Intel P8088
L’8088 è un microprocessore della famiglia x86 progettato per mantenere un core interno a 16 bit (compatibilità e modello di programmazione in linea con l’8086), ma con un’interfaccia esterna a 8 bit sul bus dati. Questa scelta architetturale riduce la complessità del sistema (memorie e periferiche più economiche, meno componenti di supporto), a fronte di prestazioni di trasferimento verso memoria inferiori rispetto a una CPU con bus dati esterno a 16 bit.
È stato prodotto da Intel ed è noto per l’adozione in molti sistemi personal e embedded di fine anni 70 e anni 80, inclusa la prima generazione di PC basati su bus a 8 bit.

Architettura di base: core 16 bit, bus dati esterno 8 bit
Le caratteristiche dichiarate della serie 8088 ribadiscono i due punti centrali:
8-bit data bus interface: interfaccia esterna a 8 bit, quindi molti trasferimenti a 16 bit avvengono in due cicli.
16-bit internal architecture: ALU e registri operano nativamente su word (16 bit).
In pratica, questo rende l’8088 ideale per piattaforme con RAM e I/O a 8 bit (più semplici ed economici), ma penalizza throughput su carichi che dipendono molto dalla banda memoria.
Indirizzamento: fino a 1 MB e modello segmentato
L’8088 offre una direct addressing capability fino a 1 Mbyte grazie a un bus indirizzi a 20 bit. Il modello di memoria resta quello segmentato:
Indirizzo fisico generato combinando segmento e offset.
Possibilità di separare logicamente codice, dati e stack tramite registri di segmento.
In pratica, la segmentazione abilita mappe memoria flessibili, ma aumenta la complessità lato software (gestione puntatori, linker/locator e convenzioni di memoria).
Compatibilità software diretta con 8086
La serie 8088 è indicata come direct software compatible con la CPU 8086. Operativamente significa:
Stesso set istruzioni e stesso modello di programmazione di base.
Portabilità elevata del software 8086, con differenze soprattutto nelle prestazioni dovute al bus esterno a 8 bit e ai timing di sistema.
Set registri e modalità di indirizzamento: ricchezza “da 16 bit”
14-word by 16-bit register set con operazioni simmetriche
La CPU dispone di un set registri descritto come 14 word da 16 bit con operazioni simmetriche. In termini pratici, questo richiama l’idea di un file registri “ampio” per l’epoca, con registri general-purpose e registri di segmento che permettono di gestire codice/dati/stack e puntatori con una flessibilità superiore a molte CPU 8 bit pure.
24 operand addressing modes
Le 24 modalità di indirizzamento ampliano la capacità di indirizzare operandi in memoria e registri. In pratica, ciò aiuta compilatori e assembly ottimizzato, riducendo istruzioni “di contorno” per calcolo indirizzi e accesso a strutture dati.
Byte, word, and block operations
Sono supportate operazioni su byte, word e blocchi. Operativamente, le operazioni “block” sono centrali per copie/movimenti memoria e routine di sistema, con benefici su throughput e codice più compatto in contesti come trasferimenti di buffer e gestione stringhe.
Aritmetica 8/16 bit, binaria e decimale, con moltiplica e divide
La serie supporta:
Aritmetica signed/unsigned a 8 bit e 16 bit.
Formati binari o decimali (in pratica, gestione BCD in specifiche istruzioni/flag).
Operazioni di multiply e divide.
Implicazione pratica: l’8088 non si limita a somma/sottrazione “base”, ma include operazioni più complesse che riducono routine software lunghe, soprattutto in applicazioni gestionali, calcolo e conversioni.
Prefetch e coda istruzioni: impatto pratico su prestazioni
L’8088 utilizza una coda di prefetch delle istruzioni (tipicamente 4 byte), che serve a sovrapporre fetch e decodifica/esecuzione.
In pratica:
In flussi lineari, la CPU può beneficiare del prefetch e ridurre stalli.
Su codice con molti salti o su sistemi con memoria lenta, la coda si svuota più spesso e il vantaggio diminuisce.
Clock: 8088 vs 8088-2
Sono indicati due clock rate:
5 MHZ per 8088.
8 MHZ per 8088-2.
In pratica, la frequenza nominale aumenta il potenziale throughput, ma la resa reale resta dipendente dal sottosistema memoria e dai wait-state imposti dal chipset/logica di sistema.
Varianti e condizioni operative: EXPRESS, range di temperatura
Available in EXPRESS
La dicitura EXPRESS va intesa come disponibilità in una specifica linea/programma di fornitura o selezione commerciale.
Standard temperature range e extended temperature range
La disponibilità in range di temperatura standard ed esteso implica selezioni per applicazioni industriali/ambienti più severi. In pratica, la versione “extended” è rilevante per elettronica industriale e sistemi con vincoli ambientali più stringenti.
Interfaccia di sistema: bus multiplexato e segnali di controllo
Come molte CPU della sua generazione, l’8088 usa linee multiplexate per ridurre il numero di pin:
Parte delle linee trasporta indirizzi in una fase del ciclo e dati in un’altra, richiedendo latch esterni per “congelare” l’indirizzo.
Sono presenti segnali di controllo per leggere/scrivere memoria e I/O e per la gestione di interrupt e DMA tramite logica di sistema.
In pratica, la piattaforma tipica include latch, transceiver e un controller di bus/chipset (o logica TTL equivalente) che definiscono timing, wait-state e mappa I/O.
Impieghi tipici e contesto storico
L’8088 è stato scelto in molte piattaforme perché consentiva un equilibrio tra:
Compatibilità 16 bit a livello di programmazione.
Costi “da bus 8 bit” a livello di memoria e periferiche.
È storicamente associato ai primi PC di IBM e a numerosi sistemi industriali con periferiche legacy e bus semplici.
Schizzo dei collegamenti più importanti
bus indirizzi 20 bit + bus dati 8 bit + controllo ┌──────────────────────────────────────────────────────────┐ │ logica di sistema / chipset │ │ latch indirizzi, transceiver, decoder, wait-state, DMA │ └───────────────────────────────┬──────────────────────────┘ │ ▼ ┌─────────────────────────────┐ │ 8088 │ │ core 16 bit, bus dati 8 bit│ │ bus indirizzi 20 bit │ │ prefetch queue (4 byte) │ └─────────────┬───────────────┘ │ ├────────► ROM/BIOS e memoria programma ├────────► RAM (dati/stack) └────────► I/O (periferiche su spazio I/O o memory-mapped)
Tabella 1 – Dati di identificazione e specifiche
| Caratteristica | Valore indicativo |
|---|---|
| Dispositivo | 8088 |
| Produttore | Intel |
| Classe | CPU x86 con architettura interna 16 bit |
| Bus dati esterno | 8 bit |
| Bus indirizzi | 20 bit |
| Spazio indirizzabile | 1 MB |
| Compatibilità software | Compatibile 8086 (direct software compatibility) |
| Set registri | 14 word da 16 bit (set registri e segmenti) |
| Modalità di indirizzamento | 24 operand addressing modes |
| Operazioni dati | Byte, word e block operations |
| Aritmetica | 8/16 bit signed/unsigned, binaria o decimale, con multiply e divide |
| Prefetch | Coda istruzioni (tipicamente 4 byte) |
| Clock | 5 MHZ (8088), 8 MHZ (8088-2) |
| Varianti operative | Disponibile in EXPRESS; range temperatura standard ed esteso |
Tabella 2 – Aspetti operativi e progettuali
| Aspetto | Significato pratico |
|---|---|
| Bus dati 8 bit con core 16 bit | Sistema più economico, ma trasferimenti word spesso in due cicli bus |
| Segmentazione 1 MB | Flessibilità nel layout memoria, ma maggiore complessità software (puntatori e linker) |
| 24 modalità di indirizzamento | Accesso operandi più flessibile; facilita compilatori e ottimizzazione |
| Operazioni block | Copie/movimenti memoria più efficienti e codice più compatto per routine di sistema |
| Aritmetica con multiply/divide | Riduce routine software e accelera calcoli rispetto a CPU con ALU più semplice |
| Prefetch queue | Migliora throughput su flussi lineari; meno efficace con molti salti o memoria lenta |
| Bus multiplexato | Riduce pin, ma richiede latch e glue logic per separare indirizzi e dati |
| Range temperatura esteso | Più adatto a elettronica industriale e ambienti severi |