COFF

COFF
Rozšíření .onebo.obj
Typ formátu spustitelný soubor , objekt , dynamická knihovna
Vyvinutý v XCOFF, ECOFF, přenosný spustitelný soubor

Common Object File Format ( COFF ) je formát pro spustitelné soubory, soubory objektového kódu a dynamické knihovny. Formát se objevil v Unix System V a nahradil dřívější a.out . Sloužil jako základ pro rozšířené specifikace jako XCOFF a ECOFF a byl následně nahrazen formátem ELF . Nadále se používá na některých operačních systémech podobných UNIX , na Microsoft Windows a dalších systémech.

Formát souboru

Soubor COFF obsahuje záhlaví souboru, volitelné záhlaví, tabulku oddílů a jeden nebo více oddílů kódu a dat.

Záhlaví souboru COFF
Zaujatost Délka Pole Popis
0 2 f_magic Identifikátor typu počítače, na kterém lze soubor spustit
2 2 f_nscns Počet sekcí
čtyři čtyři f_timdat Snížit 32 bitů počtu sekund od 1. ledna 1970 0:00, kdy byl soubor vytvořen
osm čtyři f_symptr Umístění v souboru tabulky symbolů (používá se pro ladění)
12 čtyři f_nsyms Počet prvků v tabulce symbolů
16 2 f_opthdr Dodatečná velikost záhlaví pro objektové soubory je nulová
osmnáct 2 f_flags Příznaky určující atributy souboru

Volitelná hlavička souboru obsahuje informace potřebné pro zavaděč. Velikost záhlaví se může lišit v závislosti na systému a verzi.

Další záhlaví (pro MIPS)
Zaujatost Délka Pole Popis
0 2 kouzlo Typ souboru
2 2 vstamp Verze
čtyři čtyři velikost ts Celková velikost všech sekcí obsahujících spustitelný kód
osm čtyři dsize Celková velikost všech sekcí obsahujících inicializovaná data
12 čtyři bsize Celková velikost všech sekcí obsahujících neinicializovaná data
16 čtyři vstup Adresa vstupního bodu programu (0 – pokud se nepoužívá)
dvacet čtyři text_start Adresa pro stažení kódu
24 čtyři data_start Inicializovaná adresa pro načtení dat
28 čtyři bss_start Adresa umístění neinicializovaných dat
32 čtyři gprmask
36 čtyři cprmas
40 čtyři gp_value

Tabulka sekcí se nachází přímo za doplňkovým nadpisem. Každý řádek v tabulce je nadpisem příslušné sekce.

Řádek tabulky oddílů
Zaujatost Délka Pole Popis
0 osm s_name Název sekce
osm čtyři s_paddr Fyzická adresa
12 čtyři s_vaddr Virtuální adresa
16 čtyři s_velikost Velikost sekce
dvacet čtyři s_scnpt Pozice sekce v souboru
28 čtyři s_relptr Pozice v souboru tabulky nastavení adresy sekce
32 čtyři s_lnnoptr
36 2 s_nreloc Počet položek v tabulce nastavení adresy
38 2 s_nlnno
40 čtyři s_flags Vlajky

Odkazy