|
 |
Il Processore e il Debugger |
PROCESSORE 80x86 7/14
[18 di 60] |
 | La struttura interna di un processore è relativamente
complessa ma la logica che lo governa
rende facile la comprensione delle sue parti; nelle pagine successive
analizzeremo in dettaglio lo schema funzionale
(architettura) del glorioso
8086, nostro punto di riferimento per la futura
fase della programmazione in Assembly. |
 | Possiamo anticipare che ogni processore è
costituito essenzialmente da 2 parti, rispettivamente specializzate
nella gestione dei dati (interfaccia
con i bus) e nella loro
elaborazione (unità di
esecuzione); in entrambe entrano
pesantemente in gioco i suoi Registri interni,
una struttura tra le più importanti e tipiche di una CPU. |
 | Per questa ragione è conveniente
descriverli
e conoscerli dettagliatamente,
al fine di rendere più agevoli le analisi proposte nelle pagine future. |
 | Un microprocessore è chiamato ad elaborare
informazioni assunte dall'esterno e, per poterlo fare ha bisogno di un suo
taccuino d'appunti
personale: chiunque di noi memorizza
sulla carta gli operandi di una addizione e poi diligentemente ne somma le cifre
in colonna, fino a ricostruire il risultato, su una riga sottostante... |
 | Il processore (... fatto a immagine e
somiglianza del suo creatore) non è da meno: ha bisogno di
memorizzare temporaneamente
gli operandi dentro di se,
in attesa che qualcuno li prenda in considerazione e ricostruisca il risultato
dell'operazione richiesta. |
 | Le
locazioni di memoria personali del
processore hanno il nome di Registri. |
 |
I
Registri sono locazioni di memoria ultraveloci (hanno
la velocità del clock) in stretto contatto con tutte le altre
parti della CPU a cui appartengono, con le quali interagiscono al
fine di elaborare i dati pervenuti o organizzare il
loro smistamento. |
 | Dunque i
registri
sono una risorsa di enorme valore,
anche come semplice deposito dati: il programmatore assembly (... cioè noi)
può disporre di punti di memorizzazione
direttamente sul posto
della loro elaborazione,
in alternativa a quelli classici disponibili in RAM; è chiaro che il dato di
un registro
è disponibile subito,
mentre quello della RAM deve essere da essa prelevato e
portato dentro,
con notevole differenza sui tempi d'esecuzione. |
 | Purtroppo il loro numero è piuttosto
piccolo (non ce n'è mai abbastanza,
.. vecchio piagnisteo dei programmatori...) ma con una saggia amministrazione
ed un corretto utilizzo la
programmazione non può che trarne grande vantaggio. |
 | Il controllo dei
registri
si esercita attraverso le istruzioni
, per esempio quelle
di scambio
(come MOV
AL,AH ) o quelle
aritmetiche (come ADD
AX,BX ) o quelle
logiche
(come XOR
DI,SI
); la conoscenza del
set delle istruzioni aiuta ad usare bene i singoli registri, al
fine di accoppiarli ai compiti per i quali sono meglio predisposti. |
 |
I
Registri sono, di norma, specializzati, cioè sono in
grado di compiere al meglio certe operazioni anziché altre; usare un
registro diverso da quello specializzato non vanifica l'operazione
(istruzione) desiderata ma la rende meno efficiente e più costosa,
nel senso che il programma finale avrà tempi d'esecuzione più elevati ed
occuperà più spazio in memoria). |
 | Il
numero
e la
dimensione
dei
registri
si sono evoluti con la storia dei processori, come la disponibilità di nuove
istruzioni; di norma la dimensione di un registro è quella del
bus interno
della CPU alla quale appartengono. In contrapposizione con i
registri a 16 bit
del patriarca 8086 (che cominceremo a conoscere tra poco...) vanno tenuti nel
dovuto conto
quelli a 32 bit
delle ultime generazioni. |
 |
In ogni caso i
vecchi registri a 16 bit
sono ancora perfettamente riconosciuti e ampiamente utilizzati nella
programmazione; nelle nuove architetture sono da ritenersi un sottoinsieme
dei nuovi (più esattamente la loro parte bassa). |
 | Per questa ragione lo studio e l'utilizzo
dei registri a 16 bit
rimane del tutto legittimo e didatticamente valido: spetterà al lettore
sperimentare le nuove istruzioni a 32
bit (certamente più potenti e,
forse, un po' più impegnative) al termine degli esperimenti condotti e
suggeriti da questo Tutorial. |
 | Nelle pagine successive spingeremo a fondo
la conoscenza dei 14 gloriosi registri a 16 bit dell'8086. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|