O que é o formato de ficheiro ASM?
Arquivos .asm armazenam código-fonte para aplicativos escritos em uma linguagem de programação de baixo nível. Este formato armazena dados em texto simples, que podem ser acessados usando qualquer editor de texto. No entanto, editores dedicados são recomendados para editar tais arquivos, pois oferecem recursos úteis, como numeração de linhas e realce de sintaxe.
A linguagem Assembly é uma linguagem de programação de baixo nível que trabalha em estreita colaboração com as instruções de código de máquina da arquitetura de um processador. O código Assembly é armazenado em arquivos .asm. Os primeiros montadores (assemblers) foram criados no final da década de 1940. A linguagem foi altamente popular até a década de 1980 (ou 1990, dependendo da arquitetura), quando linguagens de nível superior foram introduzidas, como C ou Pascal. As linguagens de programação de alto nível ofereciam uma sintaxe mais limpa e uma interface de programação mais intuitiva, além de uma funcionalidade significativamente expandida. No entanto, o assembly ainda é a linguagem de escolha quando o desempenho é crítico ou quando o código deve interagir diretamente com o hardware - usado em kernels de SO, bootloaders, firmware embarcado e drivers de dispositivos.
As linguagens Assembly também são usadas para escrever malware ou vírus de computador que visam diretamente as CPUs e ignoram muitas rotinas do sistema operacional.
O código-fonte armazenado em um arquivo .asm deve ser processado por um montador - não um compilador - que o converte em um arquivo de objeto de código de máquina (.obj ou .o). Um vinculador (linker) então combina um ou mais arquivos de objeto em um executável executável, como um arquivo EXE. Montadores comuns incluem MASM (Microsoft Macro Assembler), NASM e GNU as (GAS). Cada um usa um dialeto distinto; o código-fonte .asm escrito para MASM geralmente não é compatível com GAS sem modificações.
Segurança e proteção
RISCO: LOWLer ou editar um .asm é completamente seguro - é texto simples e não faz nada até ser montado e executado. O risco está apenas no que o código FAZ depois que você o monta e executa: como qualquer código-fonte, um .asm pode conter lógica maliciosa, e o assembly é uma forma comum para shellcode e provas de conceito de malware. Inspecione o assembly desconhecido antes de compilá-lo e nunca execute um binário compilado de um .asm não confiável sem entendê-lo. O arquivo em si não carrega macros ou autoexecução.
Detalhes do formato
em resumo- Arquivo de Montagem SolidWorks / Pro-ENGINEER (Creo) - Algumas ferramentas de CAD usam .asm para documentos binários de montagem 3D (Pro/E .asm, e informalmente para SolidWorks); estes são arquivos CAD binários, não relacionados ao código-fonte assembly - veja .sldasm.
- Arquivos de dados de «montagem» genéricos - Vários aplicativos de nicho nomeiam arquivos de dados de montagem de peças ou montagem de construção como .asm; identifique pelo aplicativo proprietário.
Programas que abrem arquivos ASM
Detalhes técnicos
especificação profunda| Tipo de arquivo | Código-fonte em linguagem assembly de texto simples |
| Tipo MIME | text/x-asm (também text/x-assembly, text/plain) |
| Codificação de caracteres | ASCII ou UTF-8; fontes legadas do DOS podem usar páginas de código como CP437 |
| Assinatura do arquivo | Nenhuma - sem magic bytes; identificado pela extensão e conteúdo (mnemônicos e diretivas) |
| Estrutura de linha | Cada linha contém um rótulo opcional, um mnemônico com operandos e um comentário opcional |
| Sintaxe de comentário | ; no MASM/NASM; # ou @ no GNU as (GAS); * em alguns montadores 6502/68k |
| Tamanho típico do arquivo | 1 KB - 500 KB; arquivos de listagem gerados podem ser maiores |
| Artefato de saída | Montado em um arquivo de objeto (.obj / .o), depois vinculado em um executável |
| Dialetos comuns de montadores | MASM, NASM, GNU as (sintaxe AT&T), TASM, montador ARM/Keil |
| ISAs de destino | x86/x86-64, ARM/AArch64, MIPS, RISC-V, AVR, 6502, Z80 e muitos outros |
| Portabilidade de dialeto | Não é portátil entre dialetos de montadores sem modificação; a sintaxe e as diretivas diferem significativamente |
| Suporte a macro | Suportado na maioria dos montadores: MACRO/ENDM no MASM, %macro/%endmacro no NASM, .macro/.endm no GAS |
| Mecanismo de inclusão | INCLUDE (MASM), %include (NASM), .include (GAS) - divide o código-fonte em vários arquivos |
| Casos de uso típicos | Kernels de SO, bootloaders, firmware, rotinas criptográficas, caminhos críticos de motores de jogos, análise de malware |
| Lançado | 1940s-1950s (assembly languages); .asm convention popularized by DOS/MASM era (1980s) |
| Versão mais recente | N/A (text source; depends on the target ISA and assembler dialect, not a versioned file format) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | sourceware.org |
Conversões de ASM
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos ASM.