| 
      Sezione | 
      
       
   
    
      Indirizzi Base
    
    
    
      Registri Interni
    
      | 
    
| Capitolo 1 | 
| 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. | 
  | 
| 
      
       |  
    Capitolo 1 | 
      
       | 
    PROCESSORE 80x86 7/14 | 
    
    ![]()  | 
    
    ![]()  | 
    
    ![]()  | 
 ||
| 18 di 60 | 
      
  | 
    
| 
     
  | 
  
        
  | 
    
        
  | 
    
| 
      
         
        Home 
     | 
      
  | 
    |||||||
      
  | 
       
          
        Motore Ricerca  | 
      
  |