FASM - FASM

FASM
FASM.PNG
FASMD - versão MS-DOS com IDE
Desenvolvedor (s) Tomasz Grysztar
lançamento inicial Março de 2000 ; 21 anos atras ( 2000-03 )
Versão estável
1.73.27 / 27 de janeiro de 2021 ; 7 meses atrás ( 2021-01-27 )
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 .net

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:

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 ( 09/06/2012 )
  • The Fresh IDE