Jump to content

Откройте ассемблер Watcom.

(Перенаправлено с JWASM )
Откройте ассемблер Watcom.
Оригинальный автор(ы) Откройте ассемблер Watcom.
Операционная система DOS для ПК на базе x86 , Microsoft Windows , Linux для ПК на базе x86, OS/2 для ПК на базе x86, FreeBSD для ПК на базе x86.
Доступно в Английский
Тип x86 ассемблер
Веб-сайт www .openwatcom

Open Watcom Assembler или WASM — это ассемблер x86 , созданный Watcom на основе ассемблера Watcom, присутствующего в компиляторе Watcom C/C++ и Watcom FORTRAN 77 . [ 1 ] [ 2 ] [ 3 ] Дальнейшая разработка ведется над 32- и 64-битным проектом JWASM. [ 4 ] который более точно соответствует синтаксису ассемблера Microsoft . [ 5 ]

Существуют экспериментальные ассемблеры для PowerPC , Alpha AXP и MIPS . [ 6 ]

Технические детали

[ редактировать ]

Ассемблер

[ редактировать ]
  • Встроенная поддержка выходных форматов Выходные форматы Intel OMF
  • Поддерживает наборы инструкций Intel x86 (Pentium MMX, Pentium III-4, 3DNow!, SSE и SSE2).
  • Поддерживает синтаксис макросов Microsoft ( MASM ) 5 и 6 (неполный). [ 6 ]

Дизассемблер

[ редактировать ]

Есть сопутствующий дизассемблер Watcom , wdis . Ассемблер не имеет средств листинга; использовать wdis для создания списков. вместо этого рекомендуется [ 7 ] wdis может читать объектные файлы OMF, COFF и ELF, а также исполняемые файлы PE и ELF. Он поддерживает 16-битный и 32-битный набор команд x86, включая MMX, 3DNow!, SSE, SSE2 и SSE3. поддержка наборов инструкций PowerPC, Alpha AXP, MIPS и SPARC V8 . Также встроена [ 8 ]

Вилки WASM

[ редактировать ]

JWasm — это форк Wasm, созданный Иафетом, со следующими функциями:

  • Встроенная поддержка выходных форматов 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. Исходный код портативен и успешно протестирован с Open Watcom, MS VC, GCC и другими.
  • В Windows JWasm можно использовать как с Win32Inc, так и с Masm32. Начиная с версии 2.01, он также будет работать с набором языка ассемблера SBS WALK32 Win32 Свена Б. Шрайбера. [ 9 ]
  • Заголовочные файлы C можно преобразовать во включаемые файлы для JWasm с помощью собственного специального h2incX от Japheth.
  • Исходный код JWasm распространяется под лицензией Sybase Open Watcom Public License, которая разрешает бесплатное коммерческое и некоммерческое использование.
  • Полностью поддерживает синтаксис макроса ассемблера Microsoft 6, все наборы инструкций MASM 8.

Иафет прекратил разработку (точнее, потерял связь) JWASM в январе 2014 года с версией 2.12pre, но другие участники форума Masm32 [ 10 ] продолжил с того места, на котором остановился Иафет.

HJWasm, добавив префикс H в отношении участника форума Masm32 Хабрана, который начал это второе продолжение разработки WASM. Версия 2.13pre была первоначально анонсирована в 2016 году. [ 11 ] Новые функции включают в себя:

  • Инструкции:
  • SIMD:
  • 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.
  • Расширение объектно-ориентированного языка добавлено в версии 2.25.

HASM — это переименованная версия HJWASM, начиная с версии 2.33. Это имя было использовано после обсуждения на форуме MASM, в котором первоначально предлагалось новое имя. Название HASM было предложено участником форума Хабраном в ответе №6. [ 12 ] и был окончательно доработан в конце ветки обсуждения в ответе №33. [ 13 ] В цикле выпусков HASM не добавляются никакие известные функции.

На самом деле это имя использовалось в версии 2.33 (от 20 мая 2017 г.) на странице продукта Terraspace ltd. [ 14 ] но об этом было объявлено только в версии 2.34. [ 15 ] Изменения в HJWASM включают в себя: [ 16 ]

  • Наборы инструкций: RDPID добавлен в версии 2.38.
  • Режимы адресации: 64-битная, абсолютная немедленная (2.37).
  • Идентифицированные типы
  • Типы записей: полностью поддерживает регистры и поля записи длиной до 32 бит в версии 2.41.
  • Поддержка 128-битной версии: добавлено в версии 2.42, встроенное объявление типа добавлено в версии 2.43.1/.2.
  • Поддержка цепочки typedef для возвращаемых типов добавлена ​​в версии 2.46.8.
  • Встроенные типы m512 добавлены в версии 2.47.
  • Цветовое кодирование консоли: добавлено для Windows, OSX и Linux в версии 2.43.1/.2.
  • Вызов функций: вызов функций в стиле C добавлен в версии 2.46.
  1. ^ Рэндалл Хайд. «WASM: Открытый ассемблер Watcom» . Архивировано из оригинала 2 марта 2012 г. Проверено 11 сентября 2017 г. {{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  2. ^ Лейтерман, Джеймс (2005). «MASM против NASM против TASM против WASM». 32/64-битная архитектура ассемблера 80x86 . Wordware Publishing, Inc. с. 481. ИСБН  978-1-59822-002-5 . Проверено 1 февраля 2010 г.
  3. ^ Лейтерман, стр. 482 в Google Книгах.
  4. ^ JWASM , 32/64-битный ассемблер, основанный на WASM с синтаксисом, похожим на MASM . Архивировано 10 октября 2014 г.
  5. ^ Фог, Агнер (2009), Оптимизация подпрограмм на языке ассемблера (PDF) (26 сентября 2009 г.), стр. 13
  6. ^ Перейти обратно: а б Открыть веб-сайт Watcom: Ассемблер. Архивировано 15 июля 2006 г. на Wayback Machine.
  7. ^ OpenWatcom: «Никакие файлы списков не генерируются [ассемблером]. Создание полных списков может быть пустой тратой усилий, поскольку wdis (дизассемблер Open Watcom) делает очень хорошую работу. Однако может быть чрезвычайно полезно создать дамп внутреннюю таблицу символов, как это делает MASM, особенно для диагностических целей».
  8. ^ Открыть веб-сайт Watcom: Дизассемблер. Архивировано 15 июля 2006 г. на Wayback Machine.
  9. ^ WALK32 1996 года состоит из следующих основных компонентов:
    • Полнофункциональный компоновщик файлов PE (Portable Executable) под названием W32Link.
    • Основной включаемый файл, содержащий определения констант, типов и структур Win32.
    • Другой включаемый файл, содержащий исходный код запуска приложения и DLL.
    • Макросы управления сегментами и разделами PE.
    • Макросы, связанные с поддержкой Unicode.
    • Несколько демонстрационных приложений и DLL.
    • Коллекция утилит программирования для различных целей." walk32.doc в walk32_1.zip
  10. ^ Разработка ассемблера UASM
  11. ^ Релизы HJWasm
  12. ^ Новое имя? (тема, страница 1)
  13. ^ Новое имя? (тема, стр. 3)
  14. ^ УАСМ (2.33)
  15. ^ Выпуск UASM 2.33
  16. ^ Журнал изменений UASM
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cdeb3a7346a77042b41c10347e9d4196__1699295220
URL1:https://arc.ask3.ru/arc/aa/cd/96/cdeb3a7346a77042b41c10347e9d4196.html
Заголовок, (Title) документа по адресу, URL1:
Open Watcom Assembler - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)