Wat is het ASM-bestandsformaat?
.asm-bestanden bevatten broncode voor applicaties geschreven in een programmeertaal op laag niveau. Dit formaat slaat gegevens op in platte tekst, die toegankelijk is met elke teksteditor. Voor het bewerken van dergelijke bestanden worden echter speciale editors aanbevolen, omdat deze handige functies bieden zoals regelnummering en syntax-accentuering.
Assembleertaal (Assembly) is een programmeertaal op laag niveau die nauw samenwerkt met de machinecode-instructies van een processorarchitectuur. Assembly-code wordt opgeslagen in .asm-bestanden. De eerste assemblers werden eind jaren 40 gemaakt. De taal was zeer populair tot de jaren 80 (of 90, afhankelijk van de architectuur), toen hogere programmeertalen werden geïntroduceerd, zoals C of Pascal. Hogere programmeertalen boden een schonere syntaxis en een intuïtievere programmeerinterface, evenals aanzienlijk uitgebreide functionaliteit. Niettemin is assembly nog steeds de taal bij uitstek wanneer prestaties cruciaal zijn of wanneer code rechtstreeks met hardware moet communiceren - gebruikt in OS-kernels, bootloaders, embedded firmware en apparaatstuurprogramma's.
Assembleertalen worden ook gebruikt voor het schrijven van malware of computervirussen die zich rechtstreeks op CPU's richten en veel routines van het besturingssysteem omzeilen.
Broncode opgeslagen in een .asm-bestand moet worden verwerkt door een assembler - niet een compiler - die het omzet in een machinecode objectbestand (.obj of .o). Een linker combineert vervolgens een of meer objectbestanden tot een uitvoerbaar bestand, zoals een EXE-bestand. Veelgebruikte assemblers zijn MASM (Microsoft Macro Assembler), NASM en GNU as (GAS). Elk gebruikt een eigen dialect; .asm-broncode geschreven voor MASM is over het algemeen niet compatibel met GAS zonder aanpassingen.
Beveiliging & veiligheid
RISICO: LOWHet lezen of bewerken van een .asm is volkomen veilig - het is platte tekst en doet niets totdat het is geassembleerd en uitgevoerd. Het risico zit hem alleen in wat de code DOET zodra u deze assembleert en uitvoert: zoals elke broncode kan een .asm kwaadaardige logica bevatten, en assembly is een veelvoorkomende vorm voor shellcode en malware proof-of-concepts. Inspecteer onbekende assembly voordat u deze bouwt, en voer nooit een gecompileerd binair bestand uit van een niet-vertrouwde .asm zonder deze te begrijpen. Het bestand zelf bevat geen macro's of automatische uitvoering.
Formaatdetails
in een notendop- SolidWorks / Pro-ENGINEER (Creo) Assembly-bestand - Sommige CAD-tools gebruiken .asm voor binaire 3D-samenstellingsdocumenten (Pro/E .asm, en informeel voor SolidWorks); dit zijn binaire CAD-bestanden, niet gerelateerd aan assembly-broncode - zie .sldasm.
- Generieke „assembly”-gegevensbestanden - Verschillende niche-apps noemen gegevensbestanden voor onderdeelsamenstellingen of build-assemblies .asm; identificeer deze aan de hand van de bijbehorende applicatie.
Programma's die ASM-bestanden openen
Technische details
diepe specificaties| Bestandstype | Platte tekst broncode in assembleertaal |
| MIME-type | text/x-asm (ook text/x-assembly, text/plain) |
| Karaktercodering | ASCII of UTF-8; legacy DOS-bronnen kunnen codepagina's zoals CP437 gebruiken |
| Bestandssignatuur | Geen - geen magic bytes; geïdentificeerd door extensie en inhoud (mnemonics en richtlijnen) |
| Regelstructuur | Elke regel bevat een optioneel label, een mnemonic met operanden en een optioneel commentaar |
| Commentaar-syntaxis | ; in MASM/NASM; # of @ in GNU as (GAS); * in sommige 6502/68k assemblers |
| Typische bestandsgrootte | 1 KB - 500 KB; gegenereerde listing-bestanden kunnen groter zijn |
| Uitvoer-artefact | Geassembleerd tot een objectbestand (.obj / .o), daarna gelinkt naar een uitvoerbaar bestand |
| Veelvoorkomende assembler-dialecten | MASM, NASM, GNU as (AT&T-syntaxis), TASM, ARM/Keil assembler |
| Doel-ISA's | x86/x86-64, ARM/AArch64, MIPS, RISC-V, AVR, 6502, Z80 en vele anderen |
| Portabiliteit van dialecten | Niet uitwisselbaar tussen assembler-dialecten zonder aanpassing; syntaxis en richtlijnen verschillen aanzienlijk |
| Macro-ondersteuning | Ondersteund in de meeste assemblers: MACRO/ENDM in MASM, %macro/%endmacro in NASM, .macro/.endm in GAS |
| Include-mechanisme | INCLUDE (MASM), %include (NASM), .include (GAS) - splitst broncode over meerdere bestanden |
| Typische use-cases | OS-kernels, bootloaders, firmware, cryptografische routines, game-engine hot paths, malware-analyse |
| Uitgebracht | 1940s-1950s (assembly languages); .asm convention popularized by DOS/MASM era (1980s) |
| Laatste versie | N/A (text source; depends on the target ISA and assembler dialect, not a versioned file format) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | sourceware.org |
ASM conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over ASM-bestanden.