Siirrettävä objektimoduulimuoto - Relocatable Object Module Format

Siirrettävä objektimoduulimuoto
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ää