Esta es una comparación incompleta de ensambladores . Algunos ensambladores son componentes de un sistema compilador para un lenguaje de programación de alto nivel y pueden tener una funcionalidad limitada o nula fuera del sistema compilador. Algunos ensambladores se ejecutan en el procesador y sistema operativo de destino, mientras que otros (ensambladores cruzados) pueden ejecutarse en un sistema operativo o procesador diferente. Por ejemplo, los ensambladores para sistemas embebidos no suelen ejecutarse en el sistema de destino, ya que este no contaría con la memoria ni las E/S de terminal necesarias para permitir la entrada de un programa desde un teclado. Un ensamblador puede tener un único procesador de destino o bien ofrecer opciones para admitir varios tipos de procesadores.
Como parte de un conjunto de compiladores
- Ensamblador GNU (GAS): GPL: muchos conjuntos de instrucciones de destino, incluyendo arquitectura ARM , Atmel AVR , x86 , x86-64 , RISC-V , Freescale 68HC11 , Freescale v4e , Motorola 680x0 , MIPS , PowerPC , IBM System z , TI MSP430 , Zilog Z80 .
- SDAS (bifurcación de ASxxxx Cross Assemblers y parte del proyecto Small Device C Compiler ): GPL: varios conjuntos de instrucciones objetivo, incluidos Intel 8051 , Zilog Z80 , Freescale 68HC08 , microcontrolador PIC .
- El Amsterdam Compiler Kit (ACK) está dirigido a muchas arquitecturas de la década de 1980, incluidas 6502 , 6800 , 680x0 , ARM , x86 , Zilog Z80 y Z8000 .
- LLVM está diseñado para numerosas plataformas; sin embargo, su principal objetivo no es la generación de código dependiente de la máquina, sino que utiliza una representación intermedia de alto nivel , similar al lenguaje ensamblador. No obstante, para las plataformas más comunes, el proyecto LLVM MC (código máquina) proporciona un ensamblador tanto como componente integrado de los compiladores como herramienta externa.
- Algunas otras implementaciones de lenguajes nativos autoalojados (como Go , Free Pascal y SBCL ) tienen sus propios ensambladores con múltiples destinos. Pueden usarse para el ensamblaje en línea dentro del lenguaje, o incluso incluirse como una biblioteca, pero no siempre son adecuados para usarse fuera de su marco: no existe una herramienta de línea de comandos, solo se puede usar la representación intermedia como entrada, o el conjunto de destinos compatibles es muy limitado.
Ensambladores de objetivo único
Ensambladoras 6502
Ensambladores 680x0
Ensambladores ARM
Ensambladores RISC-V
Ensambladores de mainframes
Ensambladores POWER, PowerPC y Power ISA
Ensambladores x86
- ^ Forma parte delde MINIX 3, pero sin actividad de desarrollo evidente.
- Desarrollado porInteractive Systems Corporationen 1986 al portarUNIX System Va las arquitecturas Intel iAPX286 y 80386. Arquetípico de lasintaxis ATTporque se usó como referencia para GAS. Todavía se usa enlos productos deSCO GroupUnixWareyOpenServer.
- ^ Activo, con soporte, pero sin publicidad.
- ^ Forma parte de laC++Builder, pero no se vendió como producto independiente ni se comercializó desde la escisión de CodeGear; Borland lo siguió vendiendo hasta entonces. La versión 5.0, la última, data de 1996.
- ^ Turbo Assembler fue desarrollado comoTurbo Editasmpor Uriah Barnett de Speedware Inc (Sacramento, CA) entre 1984 y 1987, y posteriormente vendido o comercializado por Borland como su Turbo Assembler.
- ^ La última versión estable, la 1.3.0, se lanzó en agosto de 2014 y desde entonces ha recibido poco mantenimiento:https://github.com/yasm/yasm
Ensambladores Z80
Otros ensambladores de objetivo único
Reorientables/ensambladores cruzados
Notas y referencias
Enlaces externos
- Lista de ensambladores que se ejecutan en hardware de bus S100, incluidos los ensambladores alojados en CP/M para 8080 y Z80.
- Ensambladores
- Comparación de software