Áthelyezhető objektummodul formátum - Relocatable Object Module Format
| Fájlnév kiterjesztés |
.obj
|
|---|---|
| Által kifejlesztett | Szerszámfelület szabványok bizottsága |
| Formátum típusa | Objektum fájl |
A Átépíthető Object Module Format (OMF) egy objektum fájl formátum elsősorban szoftver célja, hogy fut az Intel 80x86 mikroprocesszorok . A 4.0 verziót 1981 -ben adta ki az Intel Object Module Format néven , és a DOS -felhasználók számára talán a legjobban .OBJ fájlként ismert . Azóta a Szerszámfelület Szabványügyi Bizottság szabványosította .
Fájlformátum
Sok objektumfájl -formátum táblázatokból áll, mint például az áthelyezési táblázat, amelyeket vagy a fájl rögzített helyein tárolnak, például az a.out formátumot, vagy a fejléc mutat rá, például az ELF formátumot. A "szakaszok", a kód, az adatterület stb. Az ilyen fájlokban bájtok szomszédos területeiként kerülnek tárolásra.
Az áthelyezhető objektummodul -formátumot azonban úgy tervezték, hogy minimális memóriát igényeljen az összekapcsolás során, és a következő formátumú rekordok sorozatából áll:
| Méret | Tartalom |
|---|---|
| 1 bájt | Rekord típusa, például áthelyezési információk |
| 2 bájt | Adathossz ( N +1) |
| N bájt | Adatok (a rekord típusától függően változhat) |
| 1 bájt | Ellenőrző összeg vagy 0 |
A rekord típusok széles választéka áll rendelkezésre a több gyártó OMF-változatainak összevonása, valamint a 32 bites kód és a dinamikus összekapcsolás funkciók hozzáadása miatt. Ezek fontos rekordtípusok:
- COMENT - (88h) Megjegyzés, amely ellenőrzési információkat is tartalmazhat.
- EXTDEF - (8Ch) Külső hivatkozásokat határoz meg
- PUBDEF - (90h/91h) Azonosítja a külső szimbólumokat ebben a modulban
- SEGDEF - (98h/99h) A szegmenseket azonosítja
- GRPDEF - (9Ah) Azonosítja a szegmenscsoportokat, például az MS -DOS -t
DGROUP - FIXUPP - (9Ch/9Dh) Javítási vagy áthelyezési rekordok
- LEDATA - (A0h/A1h) Kód vagy adatrész szövegét tartalmazza
- COMDEF - (B0h) Inicializálatlan közös adatok
- COMDAT - (C2h/C3h) Inicializált közös adatok
- MODEND - (8Ah/8Bh) A modul végét jelzi
A fájlban nincs olyan fejléc, amely fájlkorrekciókat tartalmaz, például egy szimbólumtáblára mutató mutatót; a linkelőnek teljesen elemeznie kell az objektumfájlt az összes információ kinyeréséhez.
Az OMF formátumban az adatok egyik része nem feltétlenül tárolja a szomszédos byte a fájlban, hanem azt is képviseli több rekordot. A fájlformátum (1.1 verzió) azt mondja, hogy ez kell tenni a szakaszok nagyobb, mint 1 KiB. Az áthelyezési információkat (rögzítéseket) tartalmazó rekordokat azonnal tárolni kell azoknak a szakaszoknak az adatrekordjai után, amelyekre vonatkoznak, így a szakasz adatai és az áthelyezési információ "keveredik" a fájlban.
A fájlformátum speciális rekordokat (LIDATA) biztosít, amelyek lehetővé teszik az objektumfájlban ismétlődő adatsorok tömörítését. Lehetőséget ad arra is, hogy a későbbi futtatható fájl belépési pontjának szimbólumnevét egy objektumfájlban tárolja.
A fájlformátum könyvtári fájlformátumként is használható .
Használat
A fájlformátum a legfontosabb objektum fájlformátum DOS, 16 bites Windows , valamint 16 és 32 bites OS/2 alatt .
Kevés eszközlánc használja az OMF formátum 32 bites verzióját. Például a Watcom C eszköztár lehetővé teszi kód létrehozását 32 bites szegmentált memóriaelrendezést használó célok számára ; Az Iron Spring PL/I kódot generálhat az OS/2 32 bites lapos memória elrendezéséhez.
Az Embarcadero Delphi fordító ezt a formátumot használta obja C ++ fájlok létrehozásakor. Ez volt az egyetlen objektumfájl-formátum, amelyet a Delphi XE2 verziója előtt Object Pascal-ban írt programhoz vagy egységhez lehetett kapcsolni, amely bevezette a COFF formátum támogatását a 64 bites Windows-céllal együtt.
Lásd még
Hivatkozások
További irodalom
- Levine, John R. (2000) [1999. október]. "3. fejezet: Objektumfájlok" . Linkerek és rakodók . The Morgan Kaufmann Series in Software Engineering and Programming (1 szerk.). San Francisco, USA: Morgan Kaufmann . ISBN 1-55860-496-0. OCLC 42413382 . ISBN 978-1-55860-496-4 . Archiválva az eredetiből 2013-01-25 . Letöltve: 2020-01-12 .Kód: [1] [2] Hiba: [3]