LA CPU 8086

Il microprocessore 8086 fa parte della famiglia 80xxx della INTEL. Il capostipite di questa famiglia è stato l’8080, un microprocessore ad 8 bit che ha riscosso un enorme successo, paragonabile solo allo Z80.
Il microprocessore 8086 è a 16 bit ed è stato realizzato con tecnologia N-Channel Silicon Gate (HMOS), ed è stato introdotto dalla INTEL nel 1978.
Esso ha avuto un enorme successo perché la Microsoft per esso ha costruito il sistema operativo MS-DOS che è stato uno standard molto utilizzato grazie alla IBM, che lo ha scelto per la sua linea di Personal Computer.
L’architettura ed il set di istruzioni delle successive CPU di questa famiglia si sono progressivamente evoluti, mantenendo comunque molte somiglianze strutturali e soprattutto la compatibilità software verso il basso, cioè rispetto ai modelli precedenti. Questo era molto importante perché in questo modo gli utenti potevano interfacciare la stessa CPU con i dispositivi che già possedevano senza dover sempre comprare tutto ex-novo.
Dopo l’8086 sono stati prodotti moltissimi microprocessori tra cui ricordiamo l’ 80286, 80386, 80486 fino alla serie del Pentium, Pentium II, Pentium III, Pentium IV.
Oggi come è noto siamo già arrivati al Pentium a 64 bit, nelle sue molteplici versioni, e lo sviluppo dei microprocessori è in continua evoluzione.

 ESCAPE='HTML'

I registri interni dell'8086

CARATTERISTICHE PRINCIPALI DELL’8086.

-ADDRESS BUS A 20 BIT (2 elevato a 20 =1048576 = 1 M) con conseguente capacità di indirizzamento memoria di 1Mbyte, organizzazione della memoria a segmenti.

-DATA BUS A 16 BIT multiplexato sulle 16 linee basse dell’address bus.

-REGISTRI OPERATIVI, di cui quelli aritmetico/ logici utilizzabili anche come doppi registri a 8 bit.

-LINEE DI INTERRUPT MASCHERABILI E NON.

-DISPONIBILITA’ DI VERSIONI CON CLOCK A 5, 8 E 10 MHz.

-ALIMENTAZIONE SINGOLA A + 5 V.

-CONTENITORE A 40 PIN.

-COMPATIBILITA’ CON L’INTERFACCIA MULTIBUS.

-PUO’ SUPPORTARE IL COPROCESSORE MATEMATICO IN FLOATING POINT 8087.

-SET DI 70 ISTRUZIONI DI BASE, compatibili fino ad un massimo di 30 modi diversi di indirizzamento, consistenti in operazioni logiche, operazioni aritmetiche (binarie e BCD) con e senza segno su 8 / 16 bit, comprese moltiplicazione e divisione, manipolazione stringhe.

-COMPATIBILITA’ SOFTWARE VERSO IL BASSO CON L’8080/8085.

Blocchi funzionali del microprocessore 8086

All'interno del microprocessore 8086 si possono individuare alcuni blocchi funzionali.

-L'unita' logica Aritmetica (ALU= aritmetic Logic Unit);

-Una serie di registri;

-Circuito di decodifica istruzioni e logica di controllo.

Da un punto di vista funzionale nell'8086 si possono individuare due unità molto importanti che sono la:

- EU (Execution Unit = Unità di Esecuzione) 

- BIU (Bus Interface Unit =Unità di interfaccia a Bus).

La BIU gestisce l'indirizzamento e il prelievo dei dati e delle istruzioni e il colloquio con i dispositivi di ingresso e di uscita.
E' costituita da una logica di controllo del Bus, da 4 registri a 16 bit detti registri di segmento (CS,DS,ES,SS), dal contatore di programma IP (Instruction Pointer) anch'esso a 16 bit e da una coda di istruzioni (Instrution Queue) cosituita da un registro FIFO (First Input First Output = il primo ad entrare è anche il primo ad uscire) a 6 byte.

La EU (Esecution Unit) è la vera e propria CPU ed è costituita da un registro istruzione, un registro di flag, due registri per il puntamento nello stack, quattro registri operativi, due registri indice e una ALU che opera su dati a 16 bit.

 


 

Appunti sul Linguaggio Assembler dell'8086

Schema interno 8086

I registri visibili dell'8086

 ESCAPE='HTML'

REGISTRI VISIBILI AL PROGRAMMATORE:

Nel microprocessore 8086 ci sono 14 registri visibili al programmatore tutti a 16 bit.
Essi sono:

-Quattro registri di uso generale:
AX (Accumulator)
Bx (Base)
CX (Count)
DX (Data)

-Due registri puntatori dello stack:
SP (Stack Pointer)
BP (Base Pointer)

-Due registri indici:
SI (Source Index)
DI (Destination Index)

-Un registro di stato o registro di Flag (Flag= Bandiera)

-Un registro IP (Instruction Pointer)

-Quattro registri di segmento
CS (Code Segment)
DS (Data Segment)
SS (Stack Segment)
ES (Extra Segment)

Una caratteristica molto importante dei registri dell’8086 è che essi, pur essendo a sedici bit, possono anche essere utilizzati come due registri a 8 bit dividendo il registro a 16 bit in due.
Infatti se prendiamo per esempio il registro AX a 16 bit dividendolo in due, cioè parte alta AH (H=High) e parte bassa AL (L= Low) abbiamo due registri AH e AL entrambi ad 8 bit.
La stessa cosa si può fare per gli altri registri ottenendo: BH, BL, CH, CL, DH, DL.
L’utilità di questo marchingegno è che, se il registro a sedici bit lo posso dividere in due registri da otto bit, il microprocessore a sedici bit diventa compatibile verso il basso: posso così continuare ad utilizzare i programmi che girano con istruzioni ad 8 bit, pur avendo un microprocessore di ordine superiore a sedici bit.

Questa proprietà era molto importante per i primi sistemisti in quanto potevano utilizzare i vecchi programmi anche con il microprocessore più moderno senza distruggere il proprio lavoro.
Quindi la compatibilità verso il basso dell’8086 decretò anche il suo successo.

Oggi invece non è più così, e quindi quasi tutti gli utenti del nuovo Windows (qualunque sia la sua versione) sono tutti scontenti di non poter più utilizzare i vecchi computer (che non hanno la compatibilità verso il basso) con il conseguente spreco di denaro sia per il nuovo computer, che per il nuovo software.
 

Assembler o linguaggio a basso livello

IL LINGUAGGIO A BASSO LIVELLO

è un linguaggio intermedio nel senso che è più vicino alla macchina e non all’uomo.

E’ conosciuto anche come linguaggio assembler ed è tipico di un microprocessore nel senso che ogni microprocessore ha un suo linguaggio assembler.

Ad esempio alcune istruzioni del linguaggio a basso livello del microprocessore 8086 sono le seguenti:

a 100
MOV AL,3
MOV AH,5
ADD AL,AH
INT 3

Questo piccolo programma esegue la somma del contenuto del registro AL che vale 3 con il contenuto del registro AH che vale 5 e trasferisce il risultato della somma cioè il numero 8 nel registro AL.
In questo piccolo esempio si può notare che la somma tra due numeri viene eseguita come somma tra i contenuti dei registri.

Microsoft e l'evoluzione dei Linguaggi di Programmazione

Molti associano Microsoft primariamente al mondo Windows, Office ed ai software applicativi. Ma Microsoft è da sempre prim'attore nel mondo dello sviluppo, anzi: ricordiamo che Gates ed Allen fondano Microsoft proprio per commercializzare varianti del proprio BASIC realizzato per l'Altair.

Nel 1975 la Micro Instrumentation & Telemetry Systems, Inc. (MITS) di Ed Roberts presenta l'Altair 8800, il primo microcalcolatore disponile al grande pubblico. Si tratta di una vera e propria rivoluzione tanto che il numero di gennaio della rivista Popular Electronics con esso da ufficialmente inizia all'era dell'informatica per tutti presentandolo in copertina. 

Su questo sistema Bill Gates e Paul Allen sviluppano una versione specifica del linguaggio Basic.

Lo step evolutivo successivo è BASIC-A (Basic Advance) il BASIC per DOS, ancora interpretato e, ovviamente, a riga di comando. 

Questa versione può essere eseguita solo su PC IBM  originali (non cloni).

Successivamente si evolve in GW Basic che diventa il complemento standard dell'MS-DOS.

Dopo GW-Basic nasce QuickBasic  con una grafica migliore,un supporto al disco avanzato e, soprattutto, un compilatore che consente di distribuire direttamente l'applicazione e non il sorgente.

Siamo nel 1985 e l'intero ambiente viene distribuito esclusivamente su floppy da 5,25", mentre per la disponibilità sui supporti da 3,5" bisognerà aspettare la release 2.0 rilasciata l'anno successivo. 

La versione 2.0 porta in dote la tipica interfaccia utente che accompagnerà il prodotto per il suo intero ciclo di produzione/vendita.

Il 1988 segna il rilascio dell'ultima versione di QuickBasic, la 4.5, l'ambiente viene reso disponibile sia su floppy da 3,5" che sugli ormai obsoleti dischi da 5,25".

QBasic ha una vita più longeva del QuickBasic, tanto da essere presente addirittura in Windows 95 e Windows NT  e alcune versioni di OS/2, anche se resta sostanzialmente immutato nel tempo.

Solo dal 2000 Microsoft annuncia ufficialmente che non includerà più l'interprete nei suoi sistemi operativi, creando così un ecosistema di interpreti/compilatori QBasic like, come ad esempio FreeBasic disponibile per DOS, Windows e Linux.

Nel 1981 è la volta di MASM ovvero il Microsoft Macro Assembler, il compilatore Assembler targato Microsoft per la piattaforma x86.

MASM è lo strumento di più basso livello dell'ecosistema MS e il preferito dagli utenti esperti che devono "spremere" al massimo i propri sistemi.

Inoltre MASM diventa velocemente il leader del settore incontrando nell'omologo Intel  l'unico vero antagonista.

Del Macro Assembler vengono realizzate anche delle versioni spurie con suffisso "-80", pensate per le CPU 8080 e Z80 e aventi come target il sistema operativo CP/M.

Per uleriori notizie guarda il link seguente.

 

Loghi di Microsoft

 ESCAPE='HTML'
 ESCAPE='HTML'

Schermata del desktop windows 8

 ESCAPE='HTML'

Nasce il linguaggio C

Il 1983 è l'anno del C targato Redmond: Microsoft C 1.0, basato sul Lattice C (il primo compilatore C per PC IBM, nato per Amiga, e disponibile per un numero decisamente ampio di sistemi).

La versione per DOS è particolarmente importante poiché grazie ad essa viene effettuato il porting di una serie rilevante di applicativi da CP/M, scritti in BDS C.

Lo step di rilievo successivo è il rilascio (1985) della versione MS C 3.0, la prima interamente sviluppata da Microsoft ed utilizzata per lo sviluppo di Windows.

Visual Basic

Gli anni '90 si caratterizzano per l'esplosione di Windows e del "mondo a finestre".

L'ottica MS cambia con una visione a più lungo respiro e arrivano i primi e veri IDE (Integrated Development Environment), ovvero i primi ambienti integrati di sviluppo.

Si inaugura così l'era "VISUAL" e il portabandiera non poteva non essere che Visual Basic.

Il "papà" di VB è Alan Cooper che, il 6 marzo del 1988, si presenta da Bill Gates per venderglielo.

Foto del primo Apple Macintosh

Nell'1984 la Apple presenta il Macintosh ma da noi in Italia, come nel resto del mondo, è arrivato solo adesso. Si impone come uno tra i più completi personal computer sul mercato e questa pubblicità lo annuncia come una "macchina molto potente" facendo pensare ad un automobile sportiva coperta da un panno, mentre invece si scopre essere un mouse, nuovo componente del computer. 

Steve Jobs e la APPLE

La APPLE è una azienda informatica statunitense che produce Sistemi Operativi, computer e dispositivi multimediali con sede a Cupertino, Silicon Valley.

Fondata nel 1976 è conosciuta in tutto il mondo dai primi anni ottanta grazie alla vasta gamma di computer Macintosh.
Attualmente è spesso associato ai lettori di musica digitali come l'iPod, al negozio di musica online iTunes Store, all'iPhone (uno smartphone basato sul sistema operativo iOS) e al tablet iPAD.
La Apple venne fondata da Steve Jobs e Steve Woznizk nel 1976 a Cupertino, nella Silicon Valley in California.

Wozniak era un Hacker che nel 1975 aveva iniziato a tenere conferenze al Homebrew Computer Club e che fu il progettista del primo modello di computer venduto dalla Apple.

All'epoca gli unici processori commerciali disonibili erano l'intel 8080, che costava 179 dollari, e il motorola 6800 che costava 170 dollari.
Wozniak non aveva i soldi per comprarli e quindi cominciò a progettare i computer sulla carta.
Quando la MOS Technologies mise in commercio il suo chip 6502 nel 1976 al modico prezzo di 25 dollari,[6] Wozniak iniziò immediatamente a scrivere una versione del linguaggio di programmazione BASIC per il nuovo processore.

Una volta completata, cominciò a progettare un computer sul quale farlo girare. Il chip 6502 era stato progettato dallo stesso team che aveva progettato il 6800, cosa più che comprensibile, dal momento che molti impiegati nella Silicon Valley lasciavano le loro società per formarne di nuove. Il vecchio progetto del computer di Wozniak basato sul 6800 aveva solo bisogno di alcune piccole modifiche per poter utilizzare il nuovo processore.

Una volta completato un prototipo nel garage, Wozniak prese subito a parlarne durante le sue conferenze all'Homebrew Computer Club, dove mostrò per la prima volta il suo sistema. Fu lì che incontrò il suo vecchio amico Steve Jobs, enormemente interessato alla futura applicazione commerciale di queste piccole macchine "da hobby".

Jobs riuscì a convincere Wozniak ad assemblare la macchina che aveva progettato e a venderla assieme a lui. Jobs prese contatti con il proprietario di un negozio di computer della zona, The Byte Shop, e gli presentò la macchina.

Il proprietario era interessato alla macchina e si impegnò a comprare 50 esemplari del computer pagandoli 500 dollari l'uno, ma non intendeva venderli in scatola di montaggio, li voleva tutti montati. Quindi, per non perdere il contratto, Jobs e Wozniak dovevano assemblare tutti i computer senza però disporre né di una fabbrica né dei soldi necessari per impiantarla.

(Tratto da Wikipedia)

Il futuro della APPLE

Il termine Dual core viene utilizzato in elettronica per indicare una CPU composta da 2 core, ovvero da 2 nuclei di processori "fisici" montati sullo stesso package.

Questo tipo di architettura consente di aumentare la potenza di calcolo di una CPU senza aumentare la frequenza di lavoro, a tutto vantaggio del calore dissipato (che diminuisce rispetto al caso di più processori separati) così come l'energia assorbita.

I primi processori dual core a venire prodotti, furono gli IBM PowerPC del 2003 ma il concetto ha assunto risonanza mondiale nel 2005, anno in cui i due maggiori produttori di CPU al mondo, Intel e AMD, misero in commercio i primi esemplari di una nuova generazione di microprocessori, basati sui rispettivi prodotti esistenti, e contenenti due core.

Tratto da wikipedia