|
 |
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
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|