Watcom Assembler-ni oching - Open Watcom Assembler

Watcom Assembler-ni oching
Asl muallif (lar)Watcom Assembler-ni oching
Operatsion tizimX86 asosidagi shaxsiy kompyuterlar uchun DOS, Microsoft Windows, Linux x86 asoslangan kompyuterlar uchun, OS / 2 x86 asoslangan kompyuterlar uchun, FreeBSD x86 asoslangan kompyuterlar uchun.
Mavjud:Ingliz tili
Turix86 montajchi
Veb-saytwww.openwatcom.com

Watcom Assembler-ni oching yoki WASM bu x86 yig'uvchisi tomonidan ishlab chiqarilgan Watcom, topilgan Watcom Assembler asosida Watcom C / C ++ kompilyatori va Watcom FORTRAN 77.[1][2][3] Keyinchalik rivojlanish 32 va 64 bitli JWASM loyihasida amalga oshirilmoqda.[4] sintaksisiga ko'proq mos keladigan Microsoft-ning yig'uvchisi.[5]

Uchun eksperimental montajchilar mavjud PowerPC, Alpha AXP va MIPS.[6]

Texnik ma'lumotlar

Yig'uvchi

  • Chiqish formatlari uchun mahalliy qo'llab-quvvatlash Intel OMF chiqish formatlari
  • Intel x86 (Pentium MMX, Pentium III-4, 3DNow !, SSE va SSE2) ko'rsatmalar to'plamini qo'llab-quvvatlaydi.
  • Microsoft so'l assambleyeri (MASM) 5 va 6 sintaksisini qo'llab-quvvatlaydi (to'liq emas).[6]

Parchalanuvchi

Bog'langan Watcom mavjud demontaj qiluvchi, wdis. Assambleyerda ro'yxatga olish moslamalari mavjud emas; o'rniga foydalanish wdis ro'yxatlarni yaratish uchun tavsiya etiladi.[7] wdis OMF, COFF va ELF ob'ekt fayllarini va PE va ELF dasturlarini o'qiy oladi. Bu MMX, 3DNow !, SSE, SSE2 va SSE3 kabi 16 va 32 bitli x86 ko'rsatmalar to'plamini qo'llab-quvvatlaydi. PowerPC, Alpha AXP, MIPS va boshqalarni qo'llab-quvvatlash SPARC V8 ko'rsatmalar to'plamlari ham o'rnatilgan.[8]

WASM vilkalar

JWasm

JWasm - bu Yafets tomonidan yaratilgan Wasmning vilkasi bo'lib, quyidagi xususiyatlarga ega:

  • Intel OMF (16/32-bit), MS Coff (32-bit va 64-bit), Elf (32-bit va 64-bit), Bin va DOS MZ formatlari uchun mahalliy qo'llab-quvvatlash.
  • Oldindan tuzilgan JWasm ikkilik fayllari DOS, Windows va Linux uchun mavjud. OS / 2 va FreeBSD uchun makefiles taqdim etiladi.
  • Intel x86 (8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro), x86-64 ko'rsatmalar to'plamini qo'llab-quvvatlaydi SIMD (MMX, 3DNow !, SSE, SSE2, SSE3 va SSSE3, SSE4.1 / 2 (Jwasmdan beri), AVX (JWasm 2.06 dan beri), VMX (Intel VT-x; AMD SVM, ikkinchisi allaqachon amalga oshirilgan bo'lsa ham, hozircha faol emas) kengaytmalari (JWasm 2.09 dan beri)).
  • JWasm C-da yozilgan, manba portativ va Open Watcom, MS VC, GCC va boshqalar bilan muvaffaqiyatli sinovdan o'tgan.
  • Windows-da, JWasm-ni Win32Inc va Masm32 bilan ishlatish mumkin. V2.01 dan boshlab, u Sven B. Shrayberning SBS WALK32 Win32 Assambleyasi Til to'plami bilan ham ishlaydi[9]
  • C sarlavhali fayllarni Jafemning o'ziga xos h2incX bilan JWasm uchun fayllarni o'z ichiga olishi mumkin.
  • JWasm-ning manba kodi Sybase Open Watcom Public License-da chiqarilgan bo'lib, u bepul tijorat va tijorat maqsadlarida foydalanishga imkon beradi.
  • Microsoft makro assembler 6 sintaksisini to'liq qo'llab-quvvatlaydi, barcha MASM 8 ko'rsatmalar to'plami.

Yafet 2014 yil yanvar oyida 2.12pre versiyasi bilan JWASM ishlab chiqarishni to'xtatdi, boshqalari esa Masm32 forumida[10] Yafet to'xtagan joydan oldi.

HJWasm

HJWasm, bu WASMni rivojlantirishning ikkinchi davomini boshlagan Masm32 forum a'zosi Xabranga nisbatan H prefiksini qo'shdi. 2.13pre versiyasi dastlab 2016 yilda e'lon qilingan.[11] Yangi xususiyatlarga quyidagilar kiradi:

  • Ko'rsatmalar:
  • SIMD:
  • MMX: MOVQ va MOVD ni to'ldirish uchun 2.13 ga qo'shilgan.
  • AVX2: 2.13 ga qo'shilgan VGATHERDPD, VGATHERQPD, VGATHERDPS, VGATHERQPS, VPGATHERDD, VPGATHERQD, VPGATHERDQ, VPGATHERQQ, VEX kodlangan umumiy maqsadlar bo'yicha ko'rsatmalar. 2.16-da qo'shilgan qolgan ko'rsatmalar.
  • AVX-512: VCMPxxPD, VCMPxxPS, VCMPxxSD, VCMPxxPD, VCMPxxSS, AVX-512F to'plami, EVEX kodlangan ko'rsatmalar 2.13 ga qo'shilgan; VMOVQ MOVD-ni to'ldirish uchun 2.13 qo'shdi. 2.16-da qo'shilgan qolgan ko'rsatmalar.
  • Tasodifiy raqamlar ishlab chiqaruvchisi: RDRAND, RDSEED 2.13-da qo'shilgan.
  • yarim aniqlikdagi konversiyalar: F16C (VCVTPH2PS, VCVTPS2PH) 2.13 da qo'shilgan.
  • Intel MPX: 2.31 da qo'shilgan.
  • Registrlar: 2.13 ga qo'shilgan RIP, ZMM registrlari.
  • OO til kengaytmasi 2.25 ga qo'shilgan.

HASM

UASM - bu 2.33 versiyasidan boshlab HJWASM ning o'zgartirilgan versiyasi. Ushbu nom dastlab almashtirish nomini taklif qilgan MASM Forum munozarasi mavzusidan keyin ishlatilgan. HASM nomi forum a'zosi habran tomonidan # 6-javobda taklif qilingan[12]va 33-sonli javobda munozara mavzusi oxirida yakunlandi.[13] HASM-ning chiqish tsikliga ma'lum xususiyatlar qo'shilmaydi.

UASM

Ism aslida Terraspace Ltd mahsulot sahifasida 2.33 versiyasida (2017-05-20 yillarda) ishlatilgan[14], lekin bu faqat 2.34 versiyada e'lon qilingan.[15] HJWASM-ga o'zgartirishlar quyidagilarni o'z ichiga oladi:[16]

  • Ko'rsatmalar to'plami: RDPID 2.38 ga qo'shilgan.
  • Manzil rejimlari: 64bit mutlaq zudlik bilan (2.37)
  • Aniqlangan turlari
  • Yozuv turlari: registrlarni to'liq qo'llab-quvvatlaydi va 2,41 da 32bitgacha bo'lgan yozuv maydonlarini qo'llab-quvvatlaydi.
  • 128bit uchun qo'llab-quvvatlash: 2.42-da qo'shilgan, 2.43.1 / .2-da qo'shilgan inline deklaratsiyasi.
  • 2.46.8-ga qo'shilgan qaytish turlari bo'yicha typedef zanjirini qo'llab-quvvatlash.
  • 2.47 ga qo'shilgan m512 o'rnatilgan turlari.
  • Konsol ranglarini kodlash: Windows, OSX va Linux uchun 2.43.1 / .2 da qo'shilgan.
  • Funktsiyani chaqirish: 2.46-ga qo'shilgan C uslubidagi funktsional chaqiruv.

Adabiyotlar

  1. ^ Rendall Xayd. "WASM: Open Watcom Assembler". Asl nusxasidan arxivlandi 2012-03-02. Olingan 2017-09-11.CS1 maint: BOT: original-url holati noma'lum (havola)
  2. ^ Leyterman, Jeyms (2005). "MASM va NASM va TASM va WASM". 32/64-bitli 80x86 yig'ilish tili arxitekturasi. Wordware Publishing, Inc. p. 481. ISBN  978-1-59822-002-5. Olingan 2010-02-01.
  3. ^ Google Books-da Leiterman p482
  4. ^ JWASM, shunga o'xshash sintaksisga ega WASM asosida 32/64 bitli yig'uvchi MASM. Arxivlangan 10 oktyabr 2014 yil
  5. ^ Tuman, Agner (2009), Assotsiatsiya tilida subroutinlarni optimallashtirish (PDF) (2009-09-26 tahr.), P. 13
  6. ^ a b Watcom veb-saytini oching: Assembler Arxivlandi 2006-07-15 da Orqaga qaytish mashinasi
  7. ^ OpenWatcom: "Hech qanday ro'yxat fayllari yaratilmaydi [assembler tomonidan]. To'liq ro'yxat ishlab chiqarish juda katta kuch sarflashi mumkin, chunki wdis (Open Watcom disassembler) juda yaxshi ishlaydi. Biroq, ichki belgini tashlab qo'yish juda foydali bo'lishi mumkin. MASM usulini jadvalga qo'ying, ayniqsa diagnostika maqsadida. "
  8. ^ Watcom veb-saytini oching: Disassembler Arxivlandi 2006-07-15 da Orqaga qaytish mashinasi
  9. ^ 1996 yil "WALK32 quyidagi asosiy qismlardan iborat:
    • W32Link deb nomlangan to'liq xususiyatli PE (Portable Executable) fayl bog'lovchi.
    • Asosiy tarkibiga Win32 doimiyligi, turi va tuzilishi ta'riflarini o'z ichiga olgan fayl kiradi.
    • Boshqasiga dastur va DLL boshlang'ich kodini o'z ichiga olgan fayl kiradi.
    • Segment va pe bo'limlarini boshqarish makroslari.
    • Unicode yordamiga tegishli makroslar.
    • Bir nechta namoyish dasturlari va DLL.
    • Turli maqsadlar uchun dasturlash dasturlari to'plami. "Walk32.doc in walk32_1.zip
  10. ^ UASM Assembler Development
  11. ^ HJWasm nashrlari
  12. ^ Yangi ismmi? (mavzu 1-sahifa)
  13. ^ Yangi ismmi? (mavzu 3-bet)
  14. ^ UASM (2.33)
  15. ^ UASM 2.33 chiqarilishi
  16. ^ UASM ChangeLog

Tashqi havolalar