Qu'est-ce que le format de fichier ASM ?
Les fichiers .asm stockent le code source d'applications écrites dans un langage de programmation de bas niveau. Ce format stocke les données en texte brut, accessible via n'importe quel éditeur de texte. Cependant, des éditeurs dédiés sont recommandés pour modifier ces fichiers, car ils offrent des fonctionnalités utiles telles que la numérotation des lignes et la coloration syntaxique.
Le langage assembleur est un langage de programmation de bas niveau qui fonctionne en étroite collaboration avec les instructions du code machine d'une architecture de processeur. Le code assembleur est stocké dans des fichiers .asm. Les premiers assembleurs ont été créés à la fin des années 1940. Le langage était très populaire jusqu'aux années 1980 (ou 1990, selon l'architecture), lorsque des langages de plus haut niveau ont été introduits, tels que le C ou le Pascal. Les langages de programmation de haut niveau offraient une syntaxe plus claire et une interface de programmation plus intuitive, ainsi que des fonctionnalités considérablement étendues. Néanmoins, l'assembleur reste le langage de choix lorsque les performances sont critiques ou lorsque le code doit interagir directement avec le matériel - utilisé dans les noyaux de systèmes d'exploitation, les chargeurs d'amorçage (bootloaders), les micrologiciels embarqués et les pilotes de périphériques.
Les langages assembleurs sont également utilisés pour l'écriture de logiciels malveillants ou de virus informatiques qui ciblent directement les processeurs et contournent de nombreuses routines du système d'exploitation.
Le code source stocké dans un fichier .asm doit être traité par un assembleur - et non un compilateur - qui le convertit en un fichier objet en code machine (.obj ou .o). Un éditeur de liens combine ensuite un ou plusieurs fichiers objets en un exécutable lançable tel qu'un fichier EXE. Les assembleurs courants incluent MASM (Microsoft Macro Assembler), NASM et GNU as (GAS). Chacun utilise un dialecte distinct ; le code source .asm écrit pour MASM n'est généralement pas compatible avec GAS sans modifications.
Sécurité et sûreté
RISQUE : LOWLire ou modifier un .asm est totalement sûr - c'est du texte brut qui ne fait rien tant qu'il n'est pas assemblé et exécuté. Le risque réside uniquement dans ce que le code FAIT une fois assemblé et exécuté : comme toute source, un .asm peut contenir une logique malveillante, et l'assembleur est une forme courante pour les shellcodes et les preuves de concept de logiciels malveillants. Inspectez l'assembleur inconnu avant de le compiler, et n'exécutez jamais un binaire compilé à partir d'un .asm non fiable sans le comprendre. Le fichier lui-même ne contient ni macros ni auto-exécution.
Détails du format
en bref- Fichier d'assemblage SolidWorks / Pro-ENGINEER (Creo) - Certains outils de CAO utilisent .asm pour des documents d'assemblage 3D binaires (Pro/E .asm, et informellement pour SolidWorks) ; ce sont des fichiers CAO binaires, sans rapport avec le code source assembleur - voir .sldasm.
- Fichiers de données d'« assemblage » génériques - Diverses applications de niche nomment les fichiers de données d'assemblage de pièces ou de construction .asm ; à identifier par l'application propriétaire.
Programmes qui ouvrent les fichiers ASM
Détails techniques
spécifications approfondies| Type de fichier | Code source en langage assembleur en texte brut |
| Type MIME | text/x-asm (également text/x-assembly, text/plain) |
| Encodage des caractères | ASCII ou UTF-8 ; les sources DOS héritées peuvent utiliser des pages de codes telles que CP437 |
| Signature de fichier | Aucune - pas d'octets magiques ; identifié par l'extension et le contenu (mnémoniques et directives) |
| Structure des lignes | Chaque ligne contient une étiquette optionnelle, une mnémonique avec des opérandes et un commentaire optionnel |
| Syntaxe des commentaires | ; dans MASM/NASM ; # ou @ dans GNU as (GAS) ; * dans certains assembleurs 6502/68k |
| Taille de fichier typique | 1 Ko - 500 Ko ; les fichiers de listage générés peuvent être plus volumineux |
| Artéfact de sortie | Assemblé en un fichier objet (.obj / .o), puis lié dans un exécutable |
| Dialectes d'assembleur courants | MASM, NASM, GNU as (syntaxe AT&T), TASM, assembleur ARM/Keil |
| ISAs cibles | x86/x86-64, ARM/AArch64, MIPS, RISC-V, AVR, 6502, Z80, et bien d'autres |
| Portabilité des dialectes | Non portable entre les dialectes d'assembleur sans modification ; la syntaxe et les directives diffèrent considérablement |
| Support des macros | Pris en charge dans la plupart des assembleurs : MACRO/ENDM dans MASM, %macro/%endmacro dans NASM, .macro/.endm dans GAS |
| Mécanisme d'inclusion | INCLUDE (MASM), %include (NASM), .include (GAS) - divise la source sur plusieurs fichiers |
| Cas d'utilisation typiques | Noyaux d'OS, chargeurs d'amorçage, micrologiciels, routines cryptographiques, chemins critiques de moteurs de jeu, analyse de logiciels malveillants |
| Publié | 1940s-1950s (assembly languages); .asm convention popularized by DOS/MASM era (1980s) |
| Dernière version | N/A (text source; depends on the target ISA and assembler dialect, not a versioned file format) |
| Standard ouvert | Oui · libre de droits |
| Spécification | sourceware.org |
Conversions ASM
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers ASM.