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 |
|