Я искалМАСМкомпилятор для 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-битной архитектуре.