กลับไปหน้าบทความ

อ่าน 4 นาที

เปิด Watcom Assembler

Open Watcom Assembler ( WASM ) เป็น แอสเซมเบลอร์ x86 ที่ผลิตโดย Watcom โดยอิงจาก Watcom Assembler ที่พบใน คอมไพเลอร์ Watcom C/C++ และ Watcom FORTRAN 77 [ 1 ] [ 2 ] [ 3 ] กำลัง...

เปิด Watcom Assembler

เปิด Watcom Assembler
ผู้เขียนต้นฉบับเปิด Watcom Assembler
ระบบปฏิบัติการMS-DOS , Windows , Linuxสำหรับพีซีที่ใช้สถาปัตยกรรม x86, OS/2สำหรับพีซีที่ใช้สถาปัตยกรรม x86, FreeBSDสำหรับพีซีที่ใช้สถาปัตยกรรม x86
มีจำหน่ายในภาษาอังกฤษ
พิมพ์แอสเซมเบลอร์x86
เว็บไซต์www.openwatcom.com

Open Watcom Assembler ( WASM ) เป็นแอสเซมเบลอร์ x86ที่ผลิตโดยWatcomโดยอิงจาก Watcom Assembler ที่พบในคอมไพเลอร์ Watcom C/C++และWatcom FORTRAN 77 [ 1 ] [ 2 ] [ 3 ] กำลังมีการพัฒนาเพิ่มเติมในโครงการ JWASM 32 บิตและ 64 บิต[ 4 ] ซึ่งมีไวยากรณ์ที่ตรงกับแอสเซม เบลอร์ของ Microsoftมากขึ้น[ 5 ]

มีแอสเซมเบลอร์แบบทดลองสำหรับPowerPC , Alpha AXPและMIPS [ 6 ]

รายละเอียดทางเทคนิค

แอสเซมเบลอร์

  • รองรับรูปแบบเอาต์พุต Intel OMF โดยตรง
  • รองรับชุดคำสั่ง Intel x86 (Pentium MMX, Pentium III-4, 3DNow!, SSE และ SSE2)
  • รองรับไวยากรณ์ของ Microsoft macro assembler ( MASM ) 5 และ 6 (ไม่สมบูรณ์) [ 6 ]

ผู้ถอดประกอบ

มีตัวแยก ส่วนประกอบ Watcom ที่เกี่ยวข้อง คือwdisตัวประกอบไม่มีสิ่งอำนวยความสะดวกในการแสดงรายการ แต่แนะนำให้ ใช้ wdis สำหรับการสร้างรายการแทน [ 7 ] wdis สามารถอ่านไฟล์ออบเจ็กต์ OMF, COFF และ ELF และไฟล์ปฏิบัติการ PE และ ELF ได้ รองรับชุดคำสั่ง x86 16 บิตและ 32 บิต รวมถึง MMX, 3DNow!, SSE, SSE2 และ SSE3 นอกจากนี้ยังรองรับชุดคำสั่ง PowerPC, Alpha AXP, MIPS และSPARC V8ด้วย[ 8 ]

ส้อม WASM

เจวาสม์

JWasm เป็นเวอร์ชันแตกแขนงของ Wasm ซึ่งพัฒนาโดย Japheth โดยมีคุณสมบัติดังต่อไปนี้:

  • รองรับรูปแบบไฟล์เอาต์พุตโดยตรง ได้แก่ Intel OMF (16/32 บิต), MS COFF (32 บิตและ 64 บิต), ELF (32 บิตและ 64 บิต), Bin และ DOS MZ
  • ไฟล์ไบนารี JWasm ที่คอมไพล์ไว้ล่วงหน้ามีให้ใช้งานสำหรับ DOS, Windows และ Linux สำหรับ OS/2 และ FreeBSD จะมีไฟล์ makefile ให้ใช้งาน
  • รองรับชุดคำสั่ง Intel x86 (8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro), x86-64 พร้อมส่วนขยายSIMD (MMX, 3DNow!, SSE, SSE2, SSE3 และ SSSE3, SSE4.1/2 (ตั้งแต่ Jwasm), AVX (ตั้งแต่ JWasm 2.06), VMX ( Intel VT-x; AMD SVMซึ่งแม้ว่าจะมีการใช้งานแล้ว แต่ปัจจุบันยังไม่เปิดใช้งาน) (ตั้งแต่ JWasm 2.09))
  • JWasm เขียนด้วยภาษา C ซอร์สโค้ดสามารถใช้งานได้กับหลายแพลตฟอร์ม และได้รับการทดสอบแล้วว่าใช้งานได้ดีกับ OpenWatcom, MS VC, GCC และอื่นๆ
  • บน Windows JWasm สามารถใช้งานได้ทั้งกับ Win32Inc และ Masm32 ตั้งแต่เวอร์ชัน 2.01 เป็นต้นไป ยังสามารถใช้งานร่วมกับ SBS WALK32 Win32 Assembly Language Kit ของ Sven B. Schreiber ได้อีกด้วย[ 9 ]
  • ไฟล์เฮดเดอร์ C สามารถแปลงเป็นไฟล์รวมสำหรับ JWasm ได้โดยใช้ h2incX ที่พัฒนาโดย Japheth เอง
  • ซอร์สโค้ดของ JWasm เผยแพร่ภายใต้สัญญาอนุญาต Sybase Open Watcom Public License ซึ่งอนุญาตให้ใช้งานได้ฟรีทั้งในเชิงพาณิชย์และไม่ใช่เชิงพาณิชย์
  • รองรับไวยากรณ์ Microsoft Macro Assembler 6 อย่างเต็มรูปแบบ และชุดคำสั่ง MASM 8 ทั้งหมด

Japheth หยุดการพัฒนา (หรือพูดอีกอย่างคือขาดการติดต่อ) ของ JWASM ในเดือนมกราคม 2014 ด้วยเวอร์ชัน 2.12pre แต่ปัจจุบันยังคงทำงานในโครงการบน GitHub ต่อไป[ 10 ]เวอร์ชันปัจจุบัน (มิถุนายน 2024) คือ 2.18 นอกจากนี้ คนอื่นๆ ในฟอรัม Masm32 [ 11 ]ก็ได้สานต่อจากสิ่งที่ Japheth เคยหยุดไว้

เอชเจวาสม์

HJWasm เพิ่มคำนำหน้า H โดยอ้างอิงถึง Habran สมาชิกฟอรัม Masm32 ที่เริ่มต้นการพัฒนา WASM ครั้งที่สองนี้ เวอร์ชัน 2.13pre ได้รับการประกาศครั้งแรกในปี 2016 [ 12 ]คุณสมบัติใหม่ประกอบด้วย:

  • คำแนะนำ:
  • ซิมดี:
  • MMX : เพิ่ม MOVQ ในเวอร์ชัน 2.13 เพื่อเสริมการใช้งาน MOVD
  • AVX2 : คำสั่ง VGATHERDPD, VGATHERQPD, VGATHERDPS, VGATHERQPS, VPGATHERDD, VPGATHERQD, VPGATHERDQ, VPGATHERQQ ซึ่งเป็นคำสั่งอเนกประสงค์ที่เข้ารหัสด้วย VEX ถูกเพิ่มเข้ามาในเวอร์ชัน 2.13 ส่วนคำสั่งที่เหลือถูกเพิ่มเข้ามาในเวอร์ชัน 2.16
  • AVX-512 : VCMPxxPD, VCMPxxPS, VCMPxxSD, VCMPxxPD, VCMPxxSS, ชุด AVX-512F, คำสั่งที่เข้ารหัส EVEX ถูกเพิ่มในเวอร์ชัน 2.13; VMOVQ ถูกเพิ่มในเวอร์ชัน 2.13 เพื่อเสริม MOVD คำสั่งที่เหลือถูกเพิ่มในเวอร์ชัน 2.16
  • ตัวสร้างเลขสุ่ม: RDRANDและ RDSEED ถูกเพิ่มเข้ามาในเวอร์ชัน 2.13
  • การแปลงค่าความแม่นยำครึ่งหนึ่ง: F16C (VCVTPH2PS, VCVTPS2PH) เพิ่มเข้ามาในเวอร์ชัน 2.13
  • Intel MPX : เพิ่มเข้ามาในเวอร์ชัน 2.31
  • รีจิสเตอร์: เพิ่มรีจิสเตอร์ RIP และ ZMM ในเวอร์ชัน 2.13
  • เพิ่มส่วนขยายภาษาเชิงวัตถุ (OO) ในเวอร์ชัน 2.25

ฮาสม

HASM เป็นเวอร์ชันที่เปลี่ยนชื่อมาจาก HJWASM โดยเริ่มตั้งแต่เวอร์ชัน 2.33 ชื่อนี้ถูกนำมาใช้หลังจากกระทู้สนทนาในฟอรัม MASM ที่เสนอชื่อทดแทนขึ้นมา ชื่อ HASM ถูกเสนอโดยสมาชิกฟอรัม habran ในคำตอบที่ 6 [ 13 ]และได้รับการสรุปในตอนท้ายของกระทู้สนทนาในคำตอบที่ 33 [ 14 ]ไม่มีการเพิ่มคุณสมบัติใดๆ ในรอบการเผยแพร่ของ HASM

ยูเอเอสเอ็ม

ชื่อนี้ถูกนำมาใช้จริงในเวอร์ชัน 2.33 (ลงวันที่ 2017-05-20) ในหน้าผลิตภัณฑ์ของ Terraspace ltd [ 15 ]แต่เพิ่งมีการประกาศในเวอร์ชัน 2.34 [ 16 ]การเปลี่ยนแปลงของ HJWASM ประกอบด้วย: [ 17 ]

  • ชุดคำสั่ง: เพิ่ม RDPID ในเวอร์ชัน 2.38
  • AVX-512 : เพิ่ม VAESDEC ในเวอร์ชัน 2.38
  • การถ่ายโอนข้อมูล: เพิ่ม MOVBE ในเวอร์ชัน 2.47 เพิ่ม MOVABS ในเวอร์ชัน 2.48
  • Intel ADX : เพิ่ม ADCX และ ADOX ในเวอร์ชัน 2.38
  • Intel MPX : เพิ่มการรองรับคำนำหน้า BND ในเวอร์ชัน 2.34 ลบคำนำหน้า BND ออกจากกลุ่มคำสั่ง JCXZ ในเวอร์ชัน 2.40
  • ชุดคำสั่ง CLMUL : เพิ่มเข้ามาในเวอร์ชัน 2.46.8 รวมถึงรูปแบบคำสั่งเสมือน (pseudo-op) ของ CLMUL ด้วย
  • การแฮช: เพิ่มชุดคำสั่ง SHA ในเวอร์ชัน 2.46.8
  • การป้องกันการเข้าถึงโหมดผู้ดูแลระบบ : เพิ่ม CLAC ในเวอร์ชัน 2.38
  • ส่วนขยายหน่วยความจำถาวร : CLFLUSHOPT ถูกเพิ่มเข้ามาในเวอร์ชัน 2.38
  • โหมดการกำหนดแอดเดรส: ค่าคงที่สัมบูรณ์ 64 บิต (2.37)
  • ประเภทที่ระบุ
  • ประเภทเรคอร์ด: รองรับรีจิสเตอร์อย่างเต็มรูปแบบและฟิลด์เรคอร์ดสูงสุด 32 บิตในเวอร์ชัน 2.41
  • รองรับ SIMD 128 บิต: เพิ่มในเวอร์ชัน 2.42 การประกาศแบบอินไลน์พร้อมประเภทถูกเพิ่มในเวอร์ชัน 2.43.1 / .2
  • เพิ่มการรองรับการเชื่อมโยง typedef บนประเภทค่าส่งคืนในเวอร์ชัน 2.46.8
  • มีการเพิ่มประเภทข้อมูลในตัว m512 ในเวอร์ชัน 2.47
  • การกำหนดรหัสสีให้กับคอนโซล: เพิ่มเข้ามาสำหรับ Windows, OSX และ Linux ในเวอร์ชัน 2.43.1 / .2
  • การเรียกใช้ฟังก์ชัน: เพิ่มการเรียกใช้ฟังก์ชันแบบ C ในเวอร์ชัน 2.46
  • วิกิของโปรแกรมแอสเซมเบลอร์ WASM
  • เจวาสม์
  • หน้าเว็บของ Terraspace ltd: HJWASM , Hasm , UASM
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Open_Watcom_Assembler&oldid=1338126232#JWasm "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เปิด Watcom Assembler

Open Watcom Assembler ( WASM ) เป็น แอสเซมเบลอร์ x86 ที่ผลิตโดย Watcom โดยอิงจาก Watcom Assembler ที่พบใน คอมไพเลอร์ Watcom C/C++ และ Watcom FORTRAN 77 [ 1 ] [ 2 ] [ 3 ] กำลัง...

แอสเซมเบลอร์

รองรับรูปแบบเอาต์พุต Intel OMF โดยตรง รองรับชุดคำสั่ง Intel x86 (Pentium MMX, Pentium III-4, 3DNow!, SSE และ SSE2) รองรับไวยากรณ์ของ Microsoft macro assembler ( MASM ) 5 และ 6 (ไม่สมบูรณ์) [ 6 ]

ผู้ถอดประกอบ

มี ตัวแยก ส่วนประกอบ Watcom ที่เกี่ยวข้อง คือ wdis ตัวประกอบไม่มีสิ่งอำนวยความสะดวกในการแสดงรายการ แต่แนะนำให้ ใช้ wdis สำหรับการสร้างรายการแทน [ 7 ] wdis สามารถอ่านไฟล์ออบเจ็กต์ OMF, COFF และ ELF และไฟล์ปฏิบัติการ PE และ ELF ได้ รองรับชุดคำสั่ง x86 16 บิตและ...

เจวาสม์

JWasm เป็นเวอร์ชันแตกแขนงของ Wasm ซึ่งพัฒนาโดย Japheth โดยมีคุณสมบัติดังต่อไปนี้: