¿Qué es el formato de archivo ASM?
Los archivos .asm almacenan código fuente para aplicaciones escritas en un lenguaje de programación de bajo nivel. Este formato guarda los datos en texto plano, al cual se puede acceder mediante cualquier editor de texto. Sin embargo, se recomiendan editores dedicados para editar tales archivos, ya que ofrecen funciones útiles como numeración de líneas y resaltado de sintaxis.
El lenguaje ensamblador es un lenguaje de programación de bajo nivel que trabaja estrechamente con las instrucciones de código máquina de la arquitectura de un procesador. El código de ensamblador se almacena en archivos .asm. Los primeros ensambladores se crearon a finales de la década de 1940. El lenguaje fue muy popular hasta la década de 1980 (o 1990, dependiendo de la arquitectura), cuando se introdujeron lenguajes de nivel superior, como C o Pascal. Los lenguajes de programación de alto nivel ofrecían una sintaxis más limpia y una interfaz de programación más intuitiva, así como una funcionalidad significativamente ampliada. No obstante, el ensamblador sigue siendo el lenguaje de elección cuando el rendimiento es crítico o cuando el código debe interactuar directamente con el hardware; se utiliza en núcleos de OS, cargadores de arranque (bootloaders), firmware embebido y controladores de dispositivos.
Los lenguajes ensambladores también se utilizan para escribir malware o virus informáticos que atacan directamente a las CPU y omiten muchas rutinas del sistema operativo.
El código fuente almacenado en un archivo .asm debe ser procesado por un ensamblador -no un compilador- que lo convierte en un archivo objeto de código máquina (.obj o .o). Un enlazador (linker) combina luego uno o más archivos objeto en un ejecutable ejecutable, como un archivo EXE. Los ensambladores comunes incluyen MASM (Microsoft Macro Assembler), NASM y GNU as (GAS). Cada uno utiliza un dialecto distinto; el código fuente .asm escrito para MASM generalmente no es compatible con GAS sin modificaciones.
Seguridad y protección
RIESGO: LOWLeer o editar un .asm es completamente seguro: es texto plano y no hace nada hasta que se ensambla y se ejecuta. El riesgo reside únicamente en lo que el código HACE una vez que se ensambla y ejecuta: como cualquier fuente, un .asm puede contener lógica maliciosa, y el ensamblador es una forma común para shellcode y pruebas de concepto de malware. Inspeccione el ensamblador desconocido antes de construirlo y nunca ejecute un binario compilado a partir de un .asm no confiable sin entenderlo. El archivo en sí no contiene macros ni autoejecución.
Detalles del formato
en pocas palabras- Archivo de ensamblaje de SolidWorks / Pro-ENGINEER (Creo) - Algunas herramientas de CAD usan .asm para documentos binarios de ensamblaje 3D (Pro/E .asm, e informalmente para SolidWorks); estos son archivos CAD binarios, no relacionados con el código fuente de ensamblador; consulte .sldasm.
- Archivos de datos de «ensamblaje» genéricos - Varias aplicaciones de nicho nombran archivos de datos de ensamblaje de piezas o de construcción como .asm; identifíquelos por la aplicación propietaria.
Programas que abren archivos ASM
Detalles técnicos
especificación profunda| Tipo de archivo | Código fuente en lenguaje ensamblador de texto plano |
| Tipo MIME | text/x-asm (también text/x-assembly, text/plain) |
| Codificación de caracteres | ASCII o UTF-8; las fuentes heredadas de DOS pueden usar páginas de códigos como CP437 |
| Firma de archivo | Ninguna: sin bytes mágicos; identificado por extensión y contenido (mnemónicos y directivas) |
| Estructura de línea | Cada línea contiene una etiqueta opcional, un mnemónico con operandos y un comentario opcional |
| Sintaxis de comentarios | ; en MASM/NASM; # o @ en GNU as (GAS); * en algunos ensambladores 6502/68k |
| Tamaño típico de archivo | 1 KB - 500 KB; los archivos de listado generados pueden ser más grandes |
| Artefacto de salida | Ensamblado en un archivo objeto (.obj / .o), luego enlazado en un ejecutable |
| Dialectos de ensamblador comunes | MASM, NASM, GNU as (sintaxis AT&T), TASM, ensamblador ARM/Keil |
| ISAs de destino | x86/x86-64, ARM/AArch64, MIPS, RISC-V, AVR, 6502, Z80 y muchos otros |
| Portabilidad de dialectos | No es portable entre dialectos de ensamblador sin modificaciones; la sintaxis y las directivas difieren significativamente |
| Soporte de macros | Soportado en la mayoría de los ensambladores: MACRO/ENDM en MASM, %macro/%endmacro en NASM, .macro/.endm en GAS |
| Mecanismo de inclusión | INCLUDE (MASM), %include (NASM), .include (GAS): divide la fuente en varios archivos |
| Casos de uso típicos | Núcleos de OS, cargadores de arranque, firmware, rutinas criptográficas, rutas críticas de motores de juegos, análisis de malware |
| Lanzado | 1940s-1950s (assembly languages); .asm convention popularized by DOS/MASM era (1980s) |
| Última versión | N/A (text source; depends on the target ISA and assembler dialect, not a versioned file format) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | sourceware.org |
Conversiones de ASM
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos ASM.