Articulo de referencia

FASM

FASM ( flat assembler ) es un ensamblador para procesadores x86 . Admite el lenguaje ensamblador de estilo Intel en las arquitecturas de computadora IA-32 y x86-64 . Ofrece alta...

FASM ( flat assembler ) es un ensamblador para procesadores x86 . Admite el lenguaje ensamblador de estilo Intel en las arquitecturas de computadora IA-32 y x86-64 . Ofrece alta velocidad, optimización de tamaño, portabilidad con el sistema operativo (SO) y capacidades de macros . [ 2 ] [ 3 ] Es un ensamblador de bajo nivel [ 3 ] y utiliza intencionalmente muy pocas opciones de línea de comandos . Es software libre y de código abierto .

Todas las versiones de FASM pueden generar directamente cualquiera de los siguientes formatos: binario plano "en bruto" (utilizable también como ejecutable COM de MS-DOS o controlador SYS), objetos: formato ejecutable y enlazable (ELF) o formato de archivo de objeto común (COFF) (clásico o específico de MS), o ejecutables en formato MZ , ELF o ejecutable portátil (PE) (incluidos controladores WDM, permite la creación de stubs MZ DOS personalizados). También existe una versión no oficial para la arquitectura ARM . [ 4 ]

Historia

El proyecto fue iniciado en 1999 por Tomasz Grysztar, alias Privalov , quien en ese entonces era estudiante de matemáticas en Polonia . Fue lanzado públicamente en marzo de 2000. [ 5 ] [ 6 ] FASM está completamente escrito en lenguaje ensamblador y viene con el código fuente completo. Es autoalojado y ha podido autoensamblarse desde la versión 0.90 (4 de mayo de 1999).

FASM originalmente funcionaba en modo real plano de 16 bits . Posteriormente se añadió compatibilidad con 32 bits y, más tarde, se complementó con compatibilidad opcional con DPMI . Diseñado para facilitar su portabilidad a cualquier sistema operativo con direccionamiento plano de 32 bits, se adaptó a Windows y, posteriormente, a Linux.

Diseño

FASM no admite tantas instrucciones de alto nivel como MASM o TASM . [ 3 ] Proporciona características de sintaxis y macros, que permiten personalizar o crear instrucciones faltantes. [ 5 ] Su sintaxis de direccionamiento de memoria es similar al modo ideal de TASM y NASM . Se utilizan corchetes para denotar operandos de memoria como en ambos ensambladores, pero su tamaño se coloca fuera de los corchetes, como en NASM. [ 7 ]

FASM es un ensamblador de múltiples pasadas. Realiza una optimización extensa del tamaño del código y permite referencias anticipadas sin restricciones. [ 3 ] [ 7 ] Una construcción inusual de FASM es definir procedimientos solo si se utilizan en alguna parte del código, algo que en la mayoría de los lenguajes se hace por objeto por el enlazador .

FASM se basa en el principio de "mismo origen, mismo resultado": el contenido del archivo resultante no se ve afectado por la línea de comandos. [ 7 ] Este enfoque evita los problemas de compilación que suelen presentarse en muchos proyectos de ensamblador en las fuentes de FASM. Por otro lado, dificulta el mantenimiento de un proyecto que consta de varios archivos fuente compilados por separado o proyectos de lenguaje mixto. Sin embargo, existe un envoltorio Win32 llamado FA que mitiga este problema. [ 8 ] Los proyectos FASM se pueden compilar desde un archivo fuente directamente a un archivo ejecutable sin una etapa de enlace. [ 3 ]

IDE

Fresh , un proyecto iniciado por John Found, es un entorno de desarrollo integrado para FASM en Windows y Linux. [ 9 ]

Usar

Sistemas operativos escritos con FASM:

Compiladores que utilizan FASM como backend:

Véase también

Referencias

  1. "Descargar" .
  2. Grysztar, Tomasz (12 de mayo de 2008). "Manual del programador de Flat Assembler" . flat assembler . Consultado el 12 de mayo de 2008 .
  3. 1 2 3 4 5 Hyde, Randall. "¿Cuál ensamblador es el mejor?" . Recuperado el 18 de mayo de 2008 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  4. "FASMARM" . 2008-03-20 . Consultado el 2008-05-12 .
  5. 1 2 "Entrevista con Privalov, autor de FASM" . 12 de agosto de 2004. Archivado del original el 8 de octubre de 2007. Consultado el 12 de mayo de 2008 .
  6. Grysztar, Tomasz (2000-03-15). "flat assembler" . Recuperado el 2008-05-19 .
  7. 1 2 3 Grysztar, Tomasz. "Principios de diseño de ensambladoras planas" . Recuperado el 12 de mayo de 2008 .
  8. Grysztar, Tomasz. "FA – extensión de línea de comandos para fasm" . Consultado el 11 de mayo de 2012 .
  9. Encontrado, John. "Proyecto de identificación fresca" .
  10. "MenuetOS" . Consultado el 18 de mayo de 2008 .
  • Proyecto FASM: Sitio web oficial
  • FASMLIB 0.8.0 – biblioteca ensamblador x86 portátil de 32 bits para FASM/MASM/YASM/NASM/GASM
  • FASMARM – FASM para procesadores ARM, v1.27, 9 de junio de 2012 ( 2012-06-09 )   
  • El nuevo IDE