Flytbart objektmodulformat - Relocatable Object Module Format
| Filnavn udvidelse |
.obj
|
|---|---|
| Udviklet af | Værktøjsgrænseflade -standardudvalg |
| Type format | Objektfil |
Den Flytbar Object Modul Format (OMF) er et objekt-fil format anvendes primært til software er beregnet til at køre på Intel 80x86 mikroprocessorer . Version 4.0 blev udgivet af Intel i 1981 under navnet Object Module Format , og er måske bedst kendt af DOS -brugere som en .OBJ -fil . Det er siden blevet standardiseret af Tool Interface Standards Committee .
Filformat
Mange objektfilformater består af et sæt tabeller, f.eks. Flytningstabellen, som enten er gemt på faste positioner i filen, f.eks. A.out -formatet, eller som peget på af overskriften, ligesom ELF -formatet. "Sektionerne", koden, dataområdet osv. Lagres som sammenhængende byteområder i sådanne filer.
Relocatable Object Module Format var imidlertid designet til at kræve minimal hukommelse ved linkning og består af en række poster, der har følgende format:
| Størrelse | Indhold |
|---|---|
| 1 byte | Registreringstype, f.eks. Oplysninger om flytning |
| 2 bytes | Datalængde ( N +1) |
| N bytes | Data (varierer afhængigt af posttypen) |
| 1 byte | Checksum eller 0 |
Der er en lang række rekordtyper på grund af konsolidering af OMF-varianter fra flere leverandører og på grund af tilføjelse af funktioner som 32-bit kode og dynamisk linkning. Disse er vigtige rekordtyper:
- KOMENT - (88h) Kommentar, som også kan indeholde kontrolinformation.
- EXTDEF - (8Ch) Definerer eksterne referencer
- PUBDEF - (90h/91h) Identificerer eksterne symboler i dette modul
- SEGDEF - (98h/99h) Identificerer segmenter
- GRPDEF - (9Ah) Identificerer grupper af segmenter, f.eks. MS -DOS
DGROUP - FIXUPP - (9Ch/9Dh) Fixup- eller flytningsposter
- LEDATA - (A0h/A1h) Indeholder tekst i en kode eller datasektion
- COMDEF - (B0h) Uinitialiserede fælles data
- COMDAT - (C2h/C3h) Initialiserede fælles data
- MODEND - (8Ah/8Bh) Angiver slutningen af modulet
Der er ingen header, der indeholder filforskydninger, f.eks. En markør til en symboltabel, i filen; en linker skal helt analysere objektfilen for at udtrække alle oplysninger.
I OMF -formatet gemmes dataene i en sektion ikke nødvendigvis som sammenhængende bytes i filen, i stedet kan de repræsenteres af flere poster. Filformatspecifikationen (version 1.1) siger, at dette skal gøres for sektioner større end 1 KiB. Optegnelser, der indeholder flytningsoplysninger (rettelser), skal gemmes umiddelbart efter dataregistreringerne for det afsnit, de gælder for, så sektionsdataene og flytningsoplysningerne "blandes" i filen.
Filformatet indeholder særlige poster (LIDATA), der tillader komprimering af gentagne datasekvenser i en objektfil. Det giver også mulighed for at gemme symbolnavnet på indgangspunktet for den senere eksekverbare fil i en objektfil.
Filformatet kan også bruges som bibliotekfilformat .
Brug
Filformatet er det vigtigste objektfilformat under DOS, 16-bit Windows og 16-bit og 32-bit OS/2 .
Få værktøjskæder bruger 32-bit versionen af OMF-formatet. For eksempel tillader Watcom C værktøjskæde at generere kode til mål, der bruger 32-bit segmenteret hukommelseslayout; Iron Spring PL/I kan generere kode til OS/2 32-bit flad hukommelseslayout.
Den Delphi compiler bruges dette format, når der genereres objfiler til C ++. Det var det eneste format på objektfiler, der kunne forbindes til et program eller en enhed, der var skrevet i Object Pascal før version XE2 af Delphi, som introducerede understøttelse af COFF- format sammen med 64-bit Windows-mål.
Se også
Referencer
Yderligere læsning
- Levine, John R. (2000) [oktober 1999]. "Kapitel 3: Objektfiler" . Linkers og Loaders . Morgan Kaufmann -serien i softwareudvikling og programmering (1 udgave). San Francisco, USA: Morgan Kaufmann . ISBN 1-55860-496-0. OCLC 42413382 . ISBN 978-1-55860-496-4 . Arkiveret fra originalen 2013-01-25 . Hentet 2020-01-12 .Kode: [1] [2] Fejl: [3]