COFF

COFF
Udvidelse .oeller.obj
Formattype eksekverbar , objekt , dynamisk bibliotek
Udviklet i XCOFF, ECOFF, bærbar eksekverbar

Common Object File Format ( COFF ) er et format til eksekverbare filer, objektkodefiler og dynamiske biblioteker. Formatet dukkede op i Unix System V , og erstattede det tidligere a.out . Fungerede som grundlag for udvidede specifikationer såsom XCOFF og ECOFF og blev efterfølgende afløst af ELF -formatet . Bruges fortsat på nogle UNIX-lignende operativsystemer , på Microsoft Windows og andre systemer.

Filformat

En COFF-fil inkluderer en filheader, en valgfri header, en sektionstabel og en eller flere kode- og datasektioner.

COFF filoverskrift
Partiskhed Længde Mark Beskrivelse
0 2 f_magi Identifikator for den type maskine, hvorpå filen kan køres
2 2 f_nscns Antal sektioner
fire fire f_timdat Lavere 32 bit af antallet af sekunder siden 1. januar 1970 kl. 00:00, hvor filen blev oprettet
otte fire f_symptr Placering i symboltabelfil (bruges til fejlretning)
12 fire f_nsyms Antal elementer i symboltabellen
16 2 f_opthdr Yderligere headerstørrelse for objektfiler er nul
atten 2 f_flag Flag, der angiver filattributter

Den valgfri filoverskrift indeholder de oplysninger, som indlæseren kræver. Hovedstørrelsen kan variere afhængigt af systemet og versionen.

Yderligere header (til MIPS)
Partiskhed Længde Mark Beskrivelse
0 2 magi Filtype
2 2 vstamp Version
fire fire tsize Den samlede størrelse af alle sektioner, der indeholder eksekverbar kode
otte fire dsize Den samlede størrelse af alle sektioner, der indeholder initialiserede data
12 fire bstørrelse Den samlede størrelse af alle sektioner, der indeholder ikke-initialiserede data
16 fire indgang Programindgangspunktsadresse (0 - hvis ikke brugt)
tyve fire tekst_start Hent kode til adresse
24 fire data_start Initialiseret dataindlæsningsadresse
28 fire bss_start Placeringsadresse for ikke-initialiserede data
32 fire gprmask
36 fire cprmas
40 fire gp_værdi

Sektionstabellen er placeret direkte bag den ekstra overskrift. Hver række i tabellen er overskriften på det tilsvarende afsnit.

Sektionstabelrække
Partiskhed Længde Mark Beskrivelse
0 otte s_navn Sektionsnavn
otte fire s_paddr Fysisk adresse
12 fire s_vaddr Virtuel adresse
16 fire s_størrelse Sektionsstørrelse
tyve fire s_scnpt Sektionsposition i filen
28 fire s_relptr Position i sektionsadresseindstillingstabelfilen
32 fire s_lnnoptr
36 2 s_nreloc Antal elementer i adresseindstillingstabellen
38 2 s_nlnno
40 fire s_flag Flag

Links