FASM - FASM
|
FASMD - versão MS-DOS com IDE
| |
| Desenvolvedor (s) | Tomasz Grysztar |
|---|---|
| lançamento inicial | Março de 2000 |
| Versão estável | 1.73.27 / 27 de janeiro de 2021
|
| Repositório | |
| Escrito em | conjunto |
| Sistema operacional | Semelhante ao Unix , Linux , Windows e IDE, MS-DOS e IDE, OpenBSD , etc., MenuetOS , KolibriOS , OctaOS , DexOS e IDE, SkyOS , Solar_OS |
| Plataforma | x86 , x86-64 |
| Modelo | Montador |
| Licença | BSD simplificado com uma cláusula de copyleft fraca |
| Local na rede Internet | flatassembler |
FASM ( flat assembler ) é um assembler para processadores x86 . Ele oferece suporte à linguagem assembly no estilo Intel nas arquiteturas de computador IA-32 e x86-64 . Ele afirma alta velocidade, otimizações de tamanho, portabilidade do sistema operacional (SO) e capacidades macro . É um montador de baixo nível e usa muito poucas opções de linha de comando intencionalmente . É um software gratuito e de código aberto .
Todas as versões do FASM podem produzir diretamente qualquer um dos seguintes: binário simples "bruto" (utilizável também como executável MS-DOS COM ou driver SYS), objetos: Executable and Linkable Format (ELF) ou Common Object File Format (COFF) (clássico ou específico para MS), ou executáveis em formato MZ , ELF ou Portable Executable (PE) (incluindo drivers WDM, permite stub MZ DOS personalizado). Também existe uma porta não oficial destinada à arquitetura ARM ( FASMARM ).
História
O projeto foi iniciado em 1999 por Tomasz Grysztar, também conhecido como Privalov , na época um estudante de graduação em matemática da Polônia . Foi lançado publicamente em março de 2000. FASM é totalmente escrito em linguagem assembly e vem com o código fonte completo. É auto-hospedado e pode ser montado desde a versão 0.90 (4 de maio de 1999).
O FASM era executado originalmente em modo real plano de 16 bits . O suporte de 32 bits foi adicionado e, em seguida, complementado com suporte DPMI opcional . Projetado para ser fácil de portar para qualquer sistema operacional com endereçamento simples de 32 bits, ele foi portado para o Windows e depois para o Linux.
Projeto
FASM não oferece suporte a tantas instruções de alto nível como MASM ou TASM . Ele fornece recursos de sintaxe e macros, que tornam possível personalizar ou criar instruções ausentes. Sua sintaxe de endereçamento de memória é semelhante ao modo ideal do TASM e NASM . Os colchetes são usados para denotar operandos de memória como em ambos os montadores, mas seu tamanho é colocado fora dos colchetes, como no NASM.
O FASM é um montador de várias passagens. Ele faz uma ampla otimização do tamanho do código e permite referências diretas irrestritas. Uma construção FASM incomum é definir procedimentos apenas se eles forem usados em algum lugar no código, algo que na maioria das linguagens é feito por objeto pelo vinculador .
O FASM é baseado no princípio "mesma fonte, mesma saída": o conteúdo do arquivo resultante não é afetado pela linha de comando. Tal abordagem salva fontes FASM de problemas de compilação, muitas vezes presentes em muitos projetos de montagem. Por outro lado, torna-se mais difícil manter um projeto que consiste em vários arquivos de origem compilados separadamente ou projetos de idiomas mistos. No entanto, existe um wrapper Win32 chamado FA, que atenua esse problema. Os projetos FASM podem ser construídos a partir de um arquivo de origem diretamente em um arquivo executável sem um estágio de vinculação.
IDE
Fresh , um projeto apoiado pela comunidade da Internet iniciado por John Found, é um ambiente de desenvolvimento integrado para FASM. Fresh atualmente oferece suporte a Microsoft Windows e Linux.
Usar
Sistemas operacionais escritos com FASM:
- DexOS - por Craig Bamford e a comunidade DexOS
- MenuetOS - sistemas operacionais GUI de 32 e 64 bits da Ville Turijanmaa
- KolibriOS
Compiladores que usam FASM como back-end:
Veja também
Referências
links externos
- Projeto FASM: Site oficial
- FASMLIB 0.8.0 - asm lib portátil de 32 bits x86 para FASM / MASM / YASM / NASM / GASM
- FASMARM - FASM para processadores ARM, v1.27, 9 de junho de 2012
- The Fresh IDE