Рекомендации по программному обеспечению для компилятора MASM

Рекомендации по программному обеспечению для компилятора MASM

Я искалМАСМкомпилятор для Ubuntu. Я перенес все свои инструменты разработки в Ubuntu. Сейчас я посещаю занятия по MASM, и мне очень нужен компилятор MASM. Я видел некоторыевидео на YouTube. Они в основном используют эмулятор DOS и устанавливают туда компилятор MASM. Я не очень люблю смотреть на что-то подобное.

Вот что я ищу:

  • В идеале там должны быть какие-то логи для устранения неполадок в моих программах.

  • Графический пользовательский интерфейс — это плюс, но мне он не нужен.

  • Я бы предпочел, чтобы компилятор не был эмуляцией Windows (ему не нужно было бы использовать WineHQ).

В настоящее время я использую Sublime Text с пакетом MASM, поэтому мне не нужна IDE, однако если у вас есть решение с IDE, это было бы неплохо, например, как облегченная альтернатива Visual Studio.

Какой компилятор MASM будет хорошим в этих обстоятельствах?

решение1

Я бы предложил jwasm (наsourceforgeи нагугл код)

Страница Google перечисляет множество альтернатив и также показывает, почему jwasm лучше этих. Ниже приведена прямая копия со страницы кода Google, чтобы вы получили хорошее предложение и альтернативные программы. Вам нужно будет попробовать их, чтобы решить, что подходит именно вам. JWasm работает на Linux; все остальные могут не работать.

JWasm

Функции

  • Бесплатно.
  • Встроенная поддержка выходных форматов Intel OMF, MS Coff (32- и 64-бит), Elf (32- и 64-бит), Bin и DOS MZ.
  • Предварительно скомпилированные двоичные файлы JWasm доступны для DOS, Windows и Linux. Для OS/2 и FreeBSD предоставляются makefiles.
  • Поддерживаются инструкции до SSE4.2.
  • JWasm написан на языке C. Исходный код является переносимым и успешно протестирован с Open Watcom, MS VC, GCC и другими.
  • Исходный код JWasm распространяется под лицензией Sybase Open Watcom Public License, которая допускает бесплатное коммерческое и некоммерческое использование.

По сравнению с другими ассемблерами

МАСМ

  • JWasm бесплатен, не имеет искусственных лицензионных ограничений, может использоваться для создания двоичных файлов для любой ОС.
  • JWasm имеет открытый исходный код, забудьте о раздражающих ошибках MASM...
  • Поддерживается больше форматов вывода (Bin, ELF).
  • При желании можно создавать очень маленькие объектные модули.
  • Лучшая поддержка Open Watcom, например, соглашение о вызовах на основе регистра
  • JWasm быстрее, чем Masm.

ТАСМ

  • JWasm доступен. TASM недоступен легально. А LZASM, который является своего рода клоном TASM, понимает только режим IDEAL.
  • JWasm полностью поддерживает STRUCT и UNION. TASM имеет серьезные ограничения и ошибки в этой области.
  • JWasm поддерживает практически все функции MASM v6 (PROTO, INVOKE, директивы hll, ...), большинство из которых TASM не понимает.
  • JWasm поддерживает инструкции до SSE4, TASM отстает.

ПОАСМ

  • JWasm имеет открытый исходный код
  • JWasm дополнительно поддерживает вывод в форматах OMF, ELF и двоичном формате.
  • JWasm поддерживает 16-битные и сегментированные модели памяти. POASM понимает только FLAT.
  • JWasm совместим с реализацией макросов MASM. POASM — нет.
  • В POASM отсутствует возможность создания файла листинга.

ВАСМ

  • Возможности макросов JWasm намного лучше, чем у Wasm.
  • JWasm полностью поддерживает синтаксис Masm v6. В Wasm большинство дополнений, сделанных в Masm v6, отсутствуют.
  • Помимо OMF, JWasm поддерживает форматы вывода COFF, ELF и двоичные. JWasm поддерживает 64-битную архитектуру.

решение2

Я думаю, важно отметить, что jwasm не поддерживает соглашения о вызовах на основе POSIX (системы типа System V), поэтому, если вы хотите использовать такие функции, как proto/procs с параметрами, имейте в виду, что эти параметры будут передаваться через регистры компиляторами C/C++, но jwasm будет использовать не нужные регистры, а стек в качестве параметров, поэтому вы не сможете использовать имена параметров, как обычно, на 64-битной архитектуре.

Связанный контент