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

Watcom Assembler'ı açın
Orijinal yazar (lar) Watcom Assembler'ı açın
İşletim sistemi X86 tabanlı PC'ler için DOS , Microsoft Windows , x86 tabanlı PC'ler için Linux , x86 tabanlı PC'ler için OS / 2 , x86 tabanlı PC'ler için FreeBSD .
Uygun ingilizce
Tür x86 montajcısı
İnternet sitesi www .openwatcom .com

Open Watcom Assembler veya WASM , Watcom C / C ++ derleyicisinde ve Watcom FORTRAN 77'de bulunan Watcom Assembler'a dayanan Watcom tarafından üretilen bir x86 assembler'dır . 32 ve 64 bit JWASM projesinde daha fazla geliştirme yapılmaktadır. Microsoft'un assembler sözdizimiyle daha yakından eşleşir .

PowerPC , Alpha AXP ve MIPS için deneysel montajcılar var .

Teknik detaylar

Montajcı

  • Çıkış formatları için yerel destek Intel OMF çıktı formatları
  • 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.

Sökücü

İlişkili bir Watcom disassembler , wdis var . Birleştiricinin listeleme olanakları yoktur; bunun yerine liste oluşturmak için wdis kullanılması önerilir. 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 için destek de yerleşiktir.

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.
  • SIMD ile Intel x86 (8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro), x86-64 komut setlerini destekler (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.
  • 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 Masm32 forumundaki diğerleri 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. 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, EVEX-kodlu talimatlar 2.13'e eklendi; VMOVQ, MOVD'yi desteklemek için 2.13 ekledi. Kalan talimatlar 2.16'da 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 bir değiştirme adı öneren MASM Forum tartışma dizisinin ardından kullanıldı. HASM adı, forum üyesi habran tarafından Cevap # 6'da önerildi ve Cevap # 33'teki tartışma dizisinin sonunda son halini aldı. 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ılmış, ancak yalnızca 2.34 sürümünde duyurulmuştur. HJWASM'deki değişiklikler şunları içerir:

  • 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.0 sürümüne 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

Dış bağlantılar