Siirrettävä objektimoduulimuoto - Relocatable Object Module Format
| Tiedostopääte |
.obj
|
|---|---|
| Kehittäjä | Työkaluliitäntästandardien komitea |
| Muototyyppi | Objektitiedosto |
Uudelleensijoituslinkitystä Object moduuliformaatti (OMF) on objekti tiedosto muotoa käytetään ensisijaisesti ohjelmistojen tarkoitettu toimimaan Intel 80x86 mikroprosessorit . Intel julkaisi version 4.0 vuonna 1981 nimellä Object Module Format , ja se tunnetaan ehkä parhaiten DOS -käyttäjiltä .OBJ -tiedostona . Työkaluliitännän standardikomitea on sittemmin standardoinut sen .
Tiedosto muoto
Monet objektitiedostomuodot koostuvat taulukoista, kuten siirtotaulukosta, jotka joko tallennetaan tiedoston kiinteisiin paikkoihin, kuten a.out -muotoon, tai otsikko osoittaa niitä, kuten ELF -muoto. "Osiot", koodi, data -alue jne. Tallennetaan vierekkäisiksi tavuiksi tällaisten tiedostojen sisällä.
Uudelleen siirrettävä objektimoduulimuoto on kuitenkin suunniteltu niin, että se vaatii minimaalisen muistin linkittäessään, ja se koostuu tietueista, joiden muoto on seuraava:
| Koko | Sisällys |
|---|---|
| 1 tavu | Tietuetyyppi, esimerkiksi siirtotiedot |
| 2 tavua | Tiedon pituus ( N +1) |
| N tavua | Tiedot (vaihtelee tietuetyypin mukaan) |
| 1 tavu | Tarkistussumma tai 0 |
On olemassa laaja valikoima tietuetyyppejä, koska useiden toimittajien OMF-muunnokset on yhdistetty ja koska on lisätty ominaisuuksia, kuten 32-bittinen koodi ja dynaaminen linkitys. Nämä ovat tärkeitä tietuetyyppejä:
- KOMMENTTI - (88h) Kommentti, joka voi sisältää myös valvontatietoja.
- EXTDEF - (8Ch) Määrittää ulkoiset viitteet
- PUBDEF - (90h/91h) Tunnistaa ulkoiset symbolit tässä moduulissa
- SEGDEF - (98 h/99 h) Tunnistaa segmentit
- GRPDEF - (9Ah) Tunnistaa segmenttiryhmät, esimerkiksi MS -DOS
DGROUP - FIXUPP - (9ch / 9Dh) korjaustyökalu tai siirtäminen kirjaa
- LEDATA - (A0h/A1h) Sisältää koodin tai dataosan tekstin
- COMDEF - (B0h) Alustamaton yhteinen data
- COMDAT - (C2h/C3h) Alustetut yhteiset tiedot
- MODEND - (8Ah/8Bh) Osoittaa moduulin lopun
Tiedostossa ei ole otsikkoa, joka sisältää tiedoston siirtymiä, kuten symbolitaulukon osoittimen; linkkeri on täysin jäsentämään objekti Pura kaikki tiedot.
OMF -muodossa yhden osan tietoja ei välttämättä tallenneta tiedostoon vierekkäisinä tavuina, vaan ne voidaan esittää useilla tietueilla. Tiedostomuodon määritys (versio 1.1) sanoo, että tämä on tehtävä yli 1 KiB: n osille. Sisältäviä kirjattuja siirtäminen tiedot (korjausten) täytyy varastoida heti tietueita jakson niitä sovelletaan, joten jakso datan ja siirtäminen tieto on "sekoitettu" tiedostossa.
Tiedostomuoto tarjoaa erityisiä tietueita (LIDATA), jotka mahdollistavat objektitiedoston toistuvien tietosarjojen pakkaamisen. Se tarjoaa myös mahdollisuuden tallentaa myöhemmin suoritettavan tiedoston syöttöpisteen symbolinimi yhteen objektitiedostoon.
Tiedostomuotoa voidaan käyttää myös kirjaston tiedostomuotona.
Käyttää
Tiedostomuoto on tärkein objektitiedostomuoto DOS: ssä, 16-bittisessä Windowsissa sekä 16- ja 32-bittisessä OS/2 - käyttöjärjestelmässä .
Harvat työkaluketjut käyttävät OMF-muodon 32-bittistä versiota. Esimerkiksi Watcom C -työkaluketju mahdollistaa koodin luomisen kohteille, jotka käyttävät 32-bittisiä segmentoituja muistiasetteluja; Iron Spring PL/I voi luoda koodin OS/2 32-bittiselle litteälle muistiasettelulle.
Delphi kääntäjä käyttää tätä muotoa luotaessa objtiedostoja C ++. Se oli ainoa objektitiedostomuoto, joka voidaan linkittää ohjelmaan tai yksikköön, joka on kirjoitettu Object Pascalilla ennen Delphin versiota XE2, joka sisälsi COFF- muodon tuen ja 64-bittisen Windows-kohteen.
Katso myös
Viitteet
Lue lisää
- Levine, John R. (2000) [lokakuu 1999]. "Luku 3: Objektitiedostot" . Linkit ja kuormaajat . The Morgan Kaufmann Series in Software Engineering and Programming (1 toim.). San Francisco, USA: Morgan Kaufmann . ISBN 1-55860-496-0. OCLC 42413382 . ISBN 978-1-55860-496-4 . Arkistoitu alkuperäisestä 25.1.2013 . Haettu 2020-01-12 .Koodi: [1] [2] Virhe: [3]