Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Schede del Tutorial

Home » Programma il Computer » Tutorial Assembly

Le Schede del Tutorial

  Struttura dell'Header dei Files EXE

SCHEDA n° 01 [ 4  di 4] 

    

    Descrizione dell'Header - Area  Riservata
     
bulletDall'offset 001C inizia la seconda parte dell'Header, un'area di dimensioni variabili utilizzata per gestire gli eventuali overlay; subito dopo vengono scritte le voci della Tabella di Rilocazione.

      

bulletNei nostri esempi, avendo dedotto che la Tabella di locazione comincia all'offset 001E  (valore contenuto nella locazione 0018) le locazioni dell'Area Riservata sono 2:

      

bulletoffset 001C, byte,   01 (DB   01H)   01 (DB   01H), Buffer 
Il valore 01H è un dato non documentato immesso dai compilatori Microsoft, come MASM, al fine di documentare la versione della struttura Header del file EXE

      

bulletoffset 001D, byte,   00 (DB   00H)   00 (DB   00H), ????? 
non documentato.
 
    
    Descrizione dell'Header - Tabella di rilocazione
     
bulletLo scopo della Tabella di Rilocazione è stato ribadito in più occasioni: fino al momento dell'effettivo caricamento non è possibile conoscere il valore del segmento in cui verrà allocato il programma EXE.

      

bulletPer questa ragione il linker è costretto a lasciare a 0000H tutti i riferimenti a segmento, come se il programma dovesse essere caricato all'inizio della memoria, nelle prime locazioni RAM.

      

bulletLa raccolta di Informazioni di Controllo, descritta nella pagina precedente, contiene sempre sia la locazione d'inizio della Tabella (all'offset 0018, StartOfRelocationTable) che il numero delle sue voci (all'offset 0006, RelocationRecords).

      

bulletIl modo migliore per rappresentare ciascuna voce (record) della Tabella di Rilocazione (4 bytes) è quello di creare una struttura:
     
VoceTab       STRUC
OffsetVoce    DW ????   ; esempio 0012
SegmentVoce   DW ????   ; esempio 0000
VoceTab       ENDS

      

dove SegmentVoce indica il paragrafo (16 bytes) del modulo caricabile e OffsetVoce lo spiazzamento relativo a quel paragrafo.

bulletOgni voce rappresenta il puntatore (SegmentVoce:OffsetVoce) a un oggetto (indirizzo entry-point o variabile) del programma (modulo caricabile) che contiene riferimento ad un segmento da rilocare.

      

bulletIl loader del Dos provvederà alla rilocazione sommando a SegmentVoce il valore del segmento nel quale si accinge a caricare il programma, lasciando inalterato OffsetVoce.

    

Pagina Precedente Scheda n° 01 Pagina Successiva Struttura dell'Header dei Files EXE Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 01 -  4
1 2 3 4

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati