Eu estive procurando por umMASMcompilador para Ubuntu. Mudei todas as minhas ferramentas de desenvolvimento para o Ubuntu. Agora estou fazendo uma aula de MASM e preciso muito de um compilador MASM. Eu vi algunsvídeos no YouTube. Eles usam principalmente um emulador DOS e instalam o compilador MASM nele. Eu realmente não sou a favor de algo assim.
Aqui está o que estou procurando:
Idealmente, ele terá alguns logs para solucionar problemas dos meus programas.
A interface gráfica do usuário é uma vantagem, mas não preciso dela.
Prefiro que o compilador não seja uma emulação do Windows (não precisaria usar WineHQ).
Atualmente estou usando Sublime Text com um pacote MASM, então não preciso de um IDE, no entanto, se a solução que você tem for um IDE, tudo bem, talvez como uma alternativa leve ao Visual Studio.
O que seria um bom compilador MASM nessas circunstâncias?
Responder1
Eu sugeriria jwasm (emfonteforjae assim por diantecódigo do Google)
A página do Google lista muitas alternativas e também mostra porque o jwasm é melhor que essas. Faça uma cópia direta da página de código do Google para obter uma boa sugestão e programas alternativos. Você precisará experimentá-los para decidir o que funciona para você. JWasm funciona em Linux; todos os outros talvez não.
JWasm
Características
- Livre.
- suporte nativo para formatos de saída Intel OMF, MS Coff (32 e 64 bits), Elf (32 e 64 bits), Bin e DOS MZ.
- binários JWasm pré-compilados estão disponíveis para DOS, Windows e Linux. Para OS/2 e FreeBSD, makefiles são fornecidos.
- Instruções até SSE4.2 são suportadas.
- JWasm é escrito em C. A fonte é portátil e foi testada com sucesso com Open Watcom, MS VC, GCC e muito mais.
- O código-fonte do JWasm é lançado sob a licença pública Sybase Open Watcom, que permite uso comercial e não comercial gratuito.
Comparado com outras montadoras
MASM
- JWasm é gratuito, sem restrições artificiais de licença, pode ser usado para criar binários para qualquer sistema operacional.
- JWasm é de código aberto, esqueça os bugs irritantes do MASM ...
- Mais formatos de saída suportados (Bin, ELF).
- Opcionalmente, módulos de objetos muito pequenos podem ser criados
- Melhor suporte para Open Watcom, por exemplo, a convenção de chamada baseada em registro
- JWasm é mais rápido que Masm.
TASM
- JWasm está disponível. TASM não está legalmente disponível. E o LZASM, que é uma espécie de clone do TASM, entende apenas o modo IDEAL.
- JWasm tem suporte total para STRUCTs e UNIONs. O TASM tem severas limitações e bugs nesta área.
- JWasm suporta praticamente todos os recursos do MASM v6 (PROTO, INVOKE, diretivas hll, ...), a maioria dos quais o TASM não entende.
- JWasm suporta instruções até SSE4, TASM está atrás.
POASM
- JWasm é código aberto
- JWasm também suporta saída em formato OMF, ELF e binário
- JWasm oferece suporte a modelos de memória segmentada e de 16 bits. POASM entende apenas FLAT.
- JWasm é compatível com a implementação de macros do MASM. POASM não é.
- O POASM não tem a capacidade de criar um arquivo de listagem.
WASM
- Os recursos macro do JWasm são muito melhores que os do Wasm.
- JWasm suporta totalmente a sintaxe Masm v6. No Wasm, faltam a maioria das adições feitas no Masm v6.
- Além do OMF, o JWasm suporta formatos de saída COFF, ELF e binários. JWasm oferece suporte a 64 bits.
Responder2
Eu acho que é importante ressaltar que o jwasm não tem suporte para convenções de chamada baseadas em POSIX (sistemas do tipo System V), então, se você estiver disposto a usar fetures como proto/procs com parâmetros, esteja ciente de que esses parâmetros serão passados os registros pelos compiladores C/C++, mas o jwasm não usará os registros corretos, mas a pilha como parâmetros, então você não poderá usar nomes de parâmetros como de costume na arquitetura de 64 bits.