Watcom Assembler'ı açın - Open Watcom Assembler

Watcom Assembler'ı açın
Orijinal yazar (lar)Watcom Assembler'ı açın
İşletim sistemiX86 tabanlı bilgisayarlar için DOS, Microsoft Windows, Linux x86 tabanlı PC'ler için, OS / 2 x86 tabanlı PC'ler için, FreeBSD x86 tabanlı PC'ler için.
Uygunİngilizce
Türx86 montajcı
İnternet sitesiwww.openwatcom.com

Watcom Assembler'ı açın veya WASM bir x86 montajcısı tarafından üretilen Watcom, bulunan Watcom Assembler'a göre Watcom C / C ++ derleyicisi ve Watcom FORTRAN 77.[1][2][3] 32 ve 64 bit JWASM projesinde daha fazla geliştirme yapılmaktadır.[4] sözdizimi ile daha yakından eşleşen Microsoft'un derleyicisi.[5]

Deneysel montajcılar var PowerPC, Alpha AXP, ve MIPS.[6]

Teknik detaylar

Montajcı

  • Çıkış biçimleri için yerel destek Intel OMF çıktı biçimleri
  • Intel x86 (Pentium MMX, Pentium III-4, 3DNow !, SSE ve SSE2) komut setlerini destekler.
  • Microsoft makro derleyici (MASM) 5 ve 6 sözdizimini (eksik) destekler.[6]

Sökücü

İlişkili bir Watcom var sökücü, wdis. Birleştiricinin listeleme olanakları yoktur; bunun yerine kullanımı wdis listeleri oluşturmak için tavsiye edilir.[7] wdis, OMF, COFF ve ELF nesne dosyalarını ve PE ve ELF çalıştırılabilir dosyalarını okuyabilir. MMX, 3DNow!, SSE, SSE2 ve SSE3 dahil olmak üzere 16 bit ve 32 bit x86 komut setini destekler. PowerPC, Alpha AXP, MIPS ve SPARC V8 komut setleri de yerleşiktir.[8]

WASM çatallar

JWasm

JWasm, aşağıdaki özelliklere sahip Japheth tarafından geliştirilen bir Wasm çatalıdır:

  • Çıktı formatları için yerel destek Intel OMF (16/32-bit), MS Coff (32-bit ve 64-bit), Elf (32-bit ve 64-bit), Bin ve DOS MZ.
  • Önceden derlenmiş JWasm ikili dosyaları DOS, Windows ve Linux için mevcuttur. OS / 2 ve FreeBSD için makefiles sağlanır.
  • Intel x86 (8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro), x86-64 komut setlerini destekler. SIMD (MMX, 3DNow !, SSE, SSE2, SSE3 ve SSSE3, SSE4.1 / 2 (Jwasm'dan beri), AVX (JWasm 2.06'dan beri), VMX (Intel VT-x; AMD SVM, ikincisi zaten uygulanmış olsa da, şu anda hala etkin değil) uzantılar (JWasm 2.09'dan beri)).
  • JWasm C ile yazılmıştır. Kaynak taşınabilirdir ve Open Watcom, MS VC, GCC ve daha fazlası ile başarıyla test edilmiştir.
  • Windows'ta, JWasm hem Win32Inc hem de Masm32 ile kullanılabilir. V2.01'den bu yana, Sven B.Schreiber'in SBS WALK32 Win32 Assembly Dil Kiti ile de çalışacaktır.[9]
  • C başlık dosyaları, Japheth'in kendi özel h2incX'i ile JWasm dosyalarını içerecek şekilde dönüştürülebilir.
  • JWasm'ın kaynak kodu, ücretsiz ticari ve ticari olmayan kullanıma izin veren Sybase Açık Watcom Kamu Lisansı altında yayınlandı.
  • Microsoft macro assembler 6 sözdizimini, tüm MASM 8 komut setlerini tam olarak destekler.

Japheth, Ocak 2014'te 2.12pre sürümüyle JWASM'nin geliştirilmesini durdurdu, ancak diğerleri Masm32 forumunda[10] Japheth'in kaldığı yerden devam etti.

HJWasm

HJWasm, bu ikinci WASM geliştirme devamını başlatan Masm32 forum üyesi Habran'a referans olarak H ön ekini ekliyor. Sürüm 2.13pre ilk olarak 2016'da duyuruldu.[11] Yeni özellikler şunları içerir:

  • Talimatlar:
  • SIMD:
  • MMX: MOVQ ve MOVD'yi desteklemek için 2.13'e eklendi.
  • AVX2: VGATHERDPD, VGATHERQPD, VGATHERDPS, VGATHERQPS, VPGATHERDD, VPGATHERQD, VPGATHERDQ, VPGATHERQQ, VEX-kodlu genel amaçlı talimatlar 2.13'te eklenmiştir. Kalan talimatlar 2.16'da eklendi.
  • AVX-512: VCMPxxPD, VCMPxxPS, VCMPxxSD, VCMPxxPD, VCMPxxSS, AVX-512F seti, 2.13'te eklenen EVEX-kodlu talimatlar; VMOVQ, MOVD'yi desteklemek için 2.13 ekledi. Kalan talimatlar 2.16'da eklendi.
  • Rastgele numara üreticisi: RDRAND, RDSEED 2.13'e eklendi.
  • yarı hassas dönüşümler: F16C (VCVTPH2PS, VCVTPS2PH) 2.13'te eklendi.
  • Intel MPX: 2.31'de eklendi.
  • Kayıtlar: RIP, ZMM kayıtları 2.13.0'da eklendi.
  • OO dil uzantısı 2.25'te eklendi.

HASM

UASM, 2.33 sürümünden başlayarak HJWASM'nin yeniden adlandırılmış bir sürümüdür. Ad, başlangıçta yeni bir ad öneren MASM Forum tartışma dizisinin ardından kullanıldı. HASM adı forum üyesi habran tarafından Cevap # 6'da önerildi.[12], ve tartışma dizisinin sonunda Cevap # 33'te sonlandırıldı.[13] HASM'nin yayın döngüsüne bilinen hiçbir özellik eklenmez.

UASM

İsim aslında Terraspace ltd'nin ürün sayfasında 2.33 (2017-05-20 tarihli) sürümünde kullanıldı.[14], ancak yalnızca 2.34 sürümünde duyuruldu.[15] HJWASM'deki değişiklikler şunları içerir:[16]

  • Komut setleri: RDPID 2.38'de eklendi.
  • Adresleme modları: 64bit mutlak anlık (2.37)
  • Tanımlanan türler
  • Kayıt türleri: Kayıtları ve 2.41'de 32bit'e kadar kayıt alanlarını tam olarak destekler.
  • 128bit desteği: 2.42'de eklendi, 2.43.1 / .2'ye eklenen türle satır içi bildirim.
  • 2.46.8'de eklenen dönüş türlerinde typedef zinciri desteği.
  • m512 yerleşik türleri 2.47.1'de eklendi.
  • Konsol renk kodlaması: Windows, OSX ve Linux için 2.43.1 / .2'de eklendi.
  • İşlev çağırma: C tarzı işlev çağrısı 2.46'da eklendi.

Referanslar

  1. ^ Randall Hyde. "WASM: Açık Watcom Assembler". 2012-03-02 tarihinde kaynağından arşivlendi. Alındı 2017-09-11.CS1 bakimi: BOT: orijinal url durumu bilinmiyor (bağlantı)
  2. ^ Leiterman, James (2005). "MASM, NASM, TASM ve WASM". 32/64-bit 80x86 derleme dili mimarisi. Wordware Publishing, Inc. s. 481. ISBN  978-1-59822-002-5. Alındı 2010-02-01.
  3. ^ Google Kitaplar'da Leiterman p482
  4. ^ JWASM, WASM tabanlı 32/64 bit bir derleyici, sözdizimine benzer MASM. 10 Ekim 2014 tarihinde arşivlendi
  5. ^ Sis, Agner (2009), Alt yordamları derleme dilinde optimize etme (PDF) (2009-09-26 ed.), S. 13
  6. ^ a b Watcom web sitesini açın: Assembler Arşivlendi 2006-07-15 Wayback Makinesi
  7. ^ OpenWatcom: "[Assembler tarafından] liste dosyası oluşturulmaz. Wdis (Open Watcom disassembler) çok iyi bir iş çıkardığı için tam liste oluşturmak zahmetli olabilir. Ancak, dahili sembolün bir dökümünü oluşturmak son derece yararlı olabilir MASM'ın yaptığı gibi, özellikle teşhis amaçları için tablo. "
  8. ^ Watcom web sitesini açın: Disassembler Arşivlendi 2006-07-15 Wayback Makinesi
  9. ^ 1996 "WALK32 aşağıdaki ana bileşenlerden oluşur:
    • W32Link adlı tam özellikli bir PE (Taşınabilir Yürütülebilir) dosya bağlayıcı.
    • Win32 sabitini, türünü ve yapı tanımlarını içeren ana içerme dosyası.
    • Başka bir dosya, uygulamayı ve DLL başlangıç ​​kaynak kodunu içerir.
    • Segment ve PE bölümü yönetimi makroları.
    • Unicode desteğiyle ilgili makrolar.
    • Çeşitli demo uygulamaları ve DLL'ler.
    • Çeşitli amaçlar için bir programlama araçları koleksiyonu. "Walk32_1.zip içinde walk32.doc
  10. ^ UASM Assembler Geliştirme
  11. ^ HJWasm Sürümleri
  12. ^ Yeni Bir İsim? (iplik sayfası 1)
  13. ^ Yeni Bir İsim? (iplik sayfası 3)
  14. ^ UASM (2,33)
  15. ^ UASM 2.33 Sürümü
  16. ^ UASM ChangeLog

Dış bağlantılar