Che cos'è il formato di file ASM?
I file .asm memorizzano il codice sorgente per applicazioni scritte in un linguaggio di programmazione di basso livello. Questo formato memorizza i dati in testo semplice, a cui è possibile accedere utilizzando qualsiasi editor di testo. Tuttavia, si consiglia l'uso di editor dedicati per la modifica di tali file, poiché offrono funzioni utili come la numerazione delle righe e l'evidenziazione della sintassi.
Il linguaggio assembly è un linguaggio di programmazione di basso livello che lavora a stretto contatto con le istruzioni del codice macchina dell'architettura di un processore. Il codice assembly è memorizzato nei file .asm. I primi assembler furono creati alla fine degli anni '40. Il linguaggio è stato molto popolare fino agli anni '80 (o '90, a seconda dell'architettura), quando sono stati introdotti linguaggi di livello superiore, come il C o il Pascal. I linguaggi di programmazione di alto livello offrivano una sintassi più pulita e un'interfaccia di programmazione più intuitiva, oltre a funzionalità significativamente ampliate. Tuttavia, l'assembly è ancora il linguaggio preferito quando le prestazioni sono critiche o quando il codice deve interagire direttamente con l'hardware - viene utilizzato nei kernel dei sistemi operativi, nei bootloader, nel firmware embedded e nei driver di dispositivo.
I linguaggi assembly vengono utilizzati anche per la scrittura di malware o virus informatici che colpiscono direttamente le CPU e bypassano molte routine del sistema operativo.
Il codice sorgente memorizzato in un file .asm deve essere elaborato da un assembler - non da un compilatore - che lo converte in un file oggetto in codice macchina (.obj o .o). Un linker combina quindi uno o più file oggetto in un eseguibile avviabile come un file EXE. Gli assembler comuni includono MASM (Microsoft Macro Assembler), NASM e GNU as (GAS). Ognuno utilizza un dialetto distinto; il sorgente .asm scritto per MASM non è generalmente compatibile con GAS senza modifiche.
Sicurezza e incolumità
RISCHIO: LOWLeggere o modificare un file .asm è completamente sicuro - è testo semplice e non fa nulla finché non viene assemblato ed eseguito. Il rischio risiede solo in ciò che il codice FA una volta assemblato ed eseguito: come ogni sorgente, un .asm può contenere logica dannosa, e l'assembly è una forma comune per shellcode e proof-of-concept di malware. Ispezionare l'assembly sconosciuto prima di compilarlo e non eseguire mai un binario compilato da un .asm non attendibile senza averlo compreso. Il file in sé non trasporta macro o auto-esecuzione.
Dettagli del formato
in sintesi- File di assemblaggio SolidWorks / Pro-ENGINEER (Creo) - Alcuni strumenti CAD utilizzano .asm per documenti di assemblaggio 3D binari (Pro/E .asm, e informalmente per SolidWorks); si tratta di file CAD binari, non correlati al codice sorgente assembly - vedere .sldasm.
- File di dati di «assemblaggio» generici - Varie app di nicchia nominano i file di dati di assemblaggio di parti o di build come .asm; identificarli tramite l'applicazione proprietaria.
Programmi che aprono file ASM
Dettagli tecnici
specifiche approfondite| Tipo di file | Codice sorgente in linguaggio assembly in testo semplice |
| Tipo MIME | text/x-asm (anche text/x-assembly, text/plain) |
| Codifica dei caratteri | ASCII o UTF-8; i sorgenti DOS legacy possono utilizzare code page come CP437 |
| Firma del file | Nessuna - nessun magic byte; identificato dall'estensione e dal contenuto (mnemonici e direttive) |
| Struttura delle righe | Ogni riga contiene un'etichetta opzionale, un mnemonico con operandi e un commento opzionale |
| Sintassi dei commenti | ; in MASM/NASM; # o @ in GNU as (GAS); * in alcuni assembler 6502/68k |
| Dimensione tipica del file | 1 KB - 500 KB; i file di listing generati possono essere più grandi |
| Artefatto di output | Assemblato in un file oggetto (.obj / .o), quindi collegato in un eseguibile |
| Dialetti assembler comuni | MASM, NASM, GNU as (sintassi AT&T), TASM, assembler ARM/Keil |
| ISA di destinazione | x86/x86-64, ARM/AArch64, MIPS, RISC-V, AVR, 6502, Z80 e molti altri |
| Portabilità del dialetto | Non portabile tra dialetti assembler senza modifiche; la sintassi e le direttive differiscono significativamente |
| Supporto macro | Supportato nella maggior parte degli assembler: MACRO/ENDM in MASM, %macro/%endmacro in NASM, .macro/.endm in GAS |
| Meccanismo di inclusione | INCLUDE (MASM), %include (NASM), .include (GAS) - divide il sorgente su più file |
| Casi d'uso tipici | Kernel di OS, bootloader, firmware, routine crittografiche, percorsi critici di motori di gioco, analisi di malware |
| Rilasciato | 1940s-1950s (assembly languages); .asm convention popularized by DOS/MASM era (1980s) |
| Ultima versione | N/A (text source; depends on the target ISA and assembler dialect, not a versioned file format) |
| Standard aperto | Sì · royalty-free |
| Specifica | sourceware.org |
Conversioni ASM
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file ASM.