Ko'chiriladigan ob'ekt moduli formati - Relocatable Object Module Format

Ko'chiriladigan ob'ekt moduli formati
Fayl nomi kengaytmasi
.obj
Tomonidan ishlab chiqilganAsboblar interfeysi standartlari qo'mitasi
Format turiOb'ekt fayli

The Ko'chiriladigan ob'ekt moduli formati (OMF) bu ob'ekt fayli format asosan ishlashga mo'ljallangan dasturiy ta'minot uchun ishlatiladi Intel 80x86 mikroprotsessorlar. 4.0 versiyasi Intel tomonidan 1981 yilda ushbu nom bilan chiqarilgan Ob'ekt modulining formati,[1] va, ehtimol, eng yaxshi ma'lum DOS sifatida foydalanuvchilar .OBJ fayli. Bu vaqtdan beri standartlashtirildi Asboblar interfeysi standartlari qo'mitasi.[2]

Fayl formati

Ko'pgina ob'ekt fayllari formatlari jadvallar to'plamidan iborat, masalan, ko'chirish jadvali, ular faylning belgilangan joylarida saqlanadi, masalan a.out formatida yoki kabi sarlavha bilan ko'rsatiladi ELF format. "Bo'limlar", kod, ma'lumotlar maydoni va boshqalar, bunday fayllar ichida baytlarning tutashgan maydonlari sifatida saqlanadi.

Ko'chiriladigan ob'ekt moduli formati, ulanish paytida minimal xotirani talab qilish uchun yaratilgan va quyidagi formatga ega bo'lgan bir qator yozuvlardan iborat:

HajmiMundarija
1 baytYozuv turi, masalan, boshqa joyga ko'chish haqida ma'lumot
2 baytMa'lumot uzunligi (N+1)
N baytMa'lumotlar (yozuv turiga qarab o'zgaradi)
1 baytTekshirish summasi yoki 0

Bir nechta sotuvchilardan OMF variantlarini birlashtirganligi va 32 bitli kod va dinamik bog'lanish kabi xususiyatlarni qo'shganligi sababli juda ko'p turli xil yozuv turlari mavjud. Bu muhim yozuv turlari:

  • COMENT - (88 soat) sharh, unda nazorat ma'lumotlari ham bo'lishi mumkin.
  • EXTDEF - (8Ch) tashqi havolalarni belgilaydi
  • PUBDEF - (90 soat / 91 soat) Ushbu moduldagi tashqi belgilarni aniqlaydi
  • SEGDEF - (98 soat / 99 soat) Segmentlarni aniqlaydi
  • GRPDEF - (9Ah) segmentlar guruhlarini aniqlaydi, masalan MS-DOS DGROUP
  • Tuzatish - (9Ch / 9Dh) Tuzatish yoki boshqa joyga ko'chirish to'g'risidagi yozuvlar
  • LEDATA - (A0h / A1h) kod yoki ma'lumotlar bo'limining matni mavjud
  • COMDEF - (B0h) Boshlanmagan umumiy ma'lumotlar
  • COMDAT - (C2h / C3h) boshlangan umumiy ma'lumotlar
  • MODEND - (8Ah / 8Bh) modulning oxirini bildiradi

Faylda ramzlar jadvalining ko'rsatgichi kabi fayllarning ofsetlarini o'z ichiga olgan sarlavha yo'q; a bog'lovchi barcha ma'lumotlarni ajratib olish uchun ob'ekt faylini to'liq tahlil qilishi kerak.

OMF formatida bitta bo'lim ma'lumotlari faylda qo'shni bayt sifatida saqlanishi shart emas, aksincha mumkin bir nechta yozuvlar bilan ifodalanishi mumkin. Fayl formatining spetsifikatsiyasi (1.1-versiya) buni aytadi kerak 1 KiB dan kattaroq qismlar uchun bajarilishi kerak. O'z ichiga olgan yozuvlar boshqa joyga ko'chish haqida ma'lumot (tuzatishlar) qo'llaniladigan bo'lim ma'lumotlari yozuvlaridan so'ng darhol saqlanishi kerak, shuning uchun bo'lim ma'lumotlari va boshqa joyga ko'chirish to'g'risidagi ma'lumotlar faylda "aralash" bo'ladi.

Fayl formati ob'ekt faylida takrorlanadigan ma'lumotlar ketma-ketligini siqishga imkon beradigan maxsus yozuvlarni (LIDATA) ta'minlaydi. Bundan tashqari, keyinchalik bajariladigan faylning kirish nuqtasining belgi nomini bitta ob'ekt faylida saqlash imkoniyati mavjud.

Fayl formati sifatida ham foydalanish mumkin kutubxona fayl formati.

Foydalanish

Fayl formati DOS, 16-bitli ob'ektlar uchun eng muhim fayl formatidir Windows va 16-bit va 32-bit OS / 2.

OMF formatining 32-bitli versiyasidan bir nechta asboblar zanjiri foydalanadi. Masalan, Watcom C toolchain 32-bitdan foydalanadigan maqsadlar uchun kod ishlab chiqarishga imkon beradi segmentlangan xotira sxemalari; Temir buloq PL / I OS / 2 32-bitli tekis xotira sxemalari uchun kod yaratishi mumkin.

Embarkadero Delphi kompilyator ishlab chiqarishda ushbu formatdan foydalangan obj C ++ uchun fayllar. Bu Delphi-ning XE2 versiyasidan oldin Object Pascal-da yozilgan dastur yoki birlikka ulanishi mumkin bo'lgan yagona ob'ekt fayllari formati edi. COFF format, 64-bitli Windows maqsadlari bilan birga.

Shuningdek qarang

Adabiyotlar

  1. ^ "8086 ko'chiriladigan ob'ekt moduli formatlari". 4.0 versiyasi. Intel. 1981. Mahsulot raqami 121748-001. ark: / 13960 / t07w7pz4b. Olingan 2020-02-08. (124 bet)
  2. ^ "Asbob interfeysi standartlari (TIS) boshqa joyga ko'chiriladigan ob'ekt moduli formati (OMF) spetsifikatsiyasi" (PDF). 1.1-versiya. TIS qo'mitasi / UNIX International, Inc. 1995 yil may [1992]. Arxivlandi (PDF) asl nusxasidan 2020-02-07. Olingan 2020-02-07. (87 bet)

Qo'shimcha o'qish