| 
      Sezione | 
      
       
   
    
      Indirizzi Base
    
    
    
      Registri Interni
    
      | 
    
| Schede del Tutorial | 
| Struttura dell'Header dei Files EXE | 
      SCHEDA n° 01 [ 1 di 4]  | 
   
  | 
| 
     | 
    
  | 
  
Questa scheda è dedicata alla descrizione dei
    bytes predisposti dal 
  linker in testa (header)
    ad un file EXE, al fine di fornire tutte le informazioni necessarie al loader
    del Dos per allocare (rilocazione)
    il programma (detto modulo caricabile)
    in memoria e al processore
    per eseguirlo.
  | ||
L'intestazione occupa almeno
    512 bytes del programma EXE; esistono alcune utility in grado di
    metterne in chiaro il contenuto; tra queste 2, proprietarie della
    Micorsoft: ExeMod e 
  ExeHdr,
    distribuite nel pacchetto MASM.
  | ||
| La prima parte è detta Area delle Informazioni di Controllo e contiene, tra l'altro, i valori da mettere nei registri puntatori del processore (come CS:IP e SS:SP) prima di cominciare l'esecuzione del programma, il numero di Overlay previsti, la quantità di memoria necessaria per allocare il programma e quella occupata dall'header. | 
| 
     
  | 
      
I suoi primi 2 bytes consentono una curiosa
    precisazione: nel momento in cui il Dos è chiamato a caricare il file non
    può sapere in che formato è strutturato. Se questi 2 bytes (Signature
    o Magic Number) contengono la stringa MZ
    il file viene riconosciuto come  EXE e caricato in memoria con gli
    accorgimenti necessari, altrimenti si tratta di un file di tipo COM.
  | ||
La seconda parte invece è costituita da un'Area
    riservata e dalla Tabella di Rilocazione,
    entrambe di dimensione variabile; in quest'ultima ci sono i riferimenti non
    risolti ai segmenti del programma; il
    linker, creatore dell'EXE, non è in grado di conoscere il valore del
    segmento nel quale sarà caricato il programma, per cui lascia indicazioni
    affinché a ciò provveda il loader del Dos.
  | 
Dopo l'header
    segue il modulo caricabile, contenente
    il codice eseguibile e i dati del programma; con queste premesse, vediamo di
    che cosa si occupa la scheda:
  | 
  | 
| 
      
       |     
    Scheda n° 01 | 
      
       | 
    Struttura dell'Header dei Files EXE | 
     | 
    
    
     | 
    
     | 
 ||
| Scheda n° 01 - 1 | 
      
  | 
    
| 
     
  | 
  
        
  | 
    
        
  | 
    
| 
      
         
        Home 
     | 
      
  | 
    |||||||
      
  | 
       
          
        Motore Ricerca  | 
      
  |