Comparison of assemblers
This is a list of assemblers: computer programs that translate ("assemble") assembly language source code into binary programs.
As part of a compiler suite
- GNU Assembler (gas): GPL: many target instruction sets including ARM architecture, Atmel AVR, x86, Freescale 68HC11, Freescale v4e, Motorola 680x0, MIPS, PowerPC, IBM System z, TI MSP430, Zilog Z80.
- ASxxxx Cross Assembler (part of the Small Device C Compiler project): GPL: several target instruction sets including Intel 8051, Zilog Z80, Freescale 68HC08, PIC microcontroller.
- The Amsterdam Compiler Kit (ACK) targets many architectures of the 1980s, including 6502, 6800, 680x0, ARM, x86, Zilog Z80 and Z8000.
- LLVM targets many platforms, however there's no per-target assembly language, instead more high-level typed intermediate representation assembly-like language used.
- Some others self-hosted native-targeted language implemetations (like Golang, Free Pascal, SBCL) have their own assemblers with multiple targets. They may be used for inline assembly inside language, or even included as a library, but not always suitable for standalone application - there's no command-line tool, or only intermediate representation used as a source, or support for targets very limited.
Single target assemblers
6502 assemblers
Assembler |
License |
Instruction set |
Host platform |
64tass |
GPL |
MOS Technology 6502, WDC 65C02, WDC 65816/65802 |
various |
ACME |
GPL |
MOS Technology 6502, WDC 65C02, WDC 65816/65802 |
various |
AS65 |
Proprietary |
MOS Technology 6502, WDC 65C02, WDC 65816/65802 |
various |
ASM6 |
Public domain |
MOS Technology 6502 |
various |
ATASM |
GPL |
MOS Technology 6502 |
various |
Atari Assembler Editor |
Proprietary |
MOS Technology 6502, |
Atari 8-bit family |
Atari Macro Assembler |
Proprietary |
MOS Technology 6502 |
Atari 8-bit family |
C64List |
Proprietary |
MOS Technology 6502 |
Commodore 64 |
CA65 |
GPL |
MOS Technology 6502, WDC 65C02, WDC 65816/65802 |
various |
dasm |
GPL |
MOS Technology 6502, others |
various |
dreamass |
GPL |
MOS Technology 6502, WDC 65816/65802 |
various |
French Silk |
Proprietary |
MOS Technology 6502 |
Commodore 64 |
Kick Assembler |
Proprietary |
MOS Technology 6502 |
various |
Lisa |
Proprietary |
MOS Technology 6502 |
Apple II series |
MAC/65 |
Proprietary |
MOS Technology 6502, WDC 65C02 |
Atari 8-bit family |
MADS |
Public domain |
MOS Technology 6502, WDC 65816/65802 |
various |
MAE |
Unknown |
MOS Technology 6502, WDC 65C02, WDC 65816/65802 |
Atari 8-bit family |
Merlin |
Proprietary |
MOS Technology 6502, WDC 65C02, WDC 65816/65802 |
Apple II series, Commodore 64, Commodore 128 |
MOSASM |
GPL |
MOS Technology 6502 |
various |
Ophis |
MIT License |
MOS Technology 6502, WDC 65C02, MOS Technology 4502/4510 (experimental) |
various |
ORCA/M |
Proprietary |
MOS Technology 6502, WDC 65C02 |
Apple II series |
S-C Assembler II |
Proprietary |
MOS Technology 6502 |
Apple II |
TMPx |
Proprietary |
MOS Technology 6502 |
various |
vasm |
Free |
MOS Technology 6502 |
various |
VISUAL6502 |
GPL |
MOS Technology 6502 |
various |
WLA DX |
GPL |
MOS Technology 6502, others |
various |
XA65 |
GPL |
MOS Technology 6502, others |
various |
XASM |
Public domain |
MOS Technology 6502 |
various |
680x0 assemblers
ARM assemblers
IBM mainframe assemblers
Power Architecture assemblers
x86 assemblers
Assembler |
Operating system |
Open source |
License |
x86-64 |
Active development |
A86/A386 |
Windows, DOS |
No |
Proprietary |
No |
No |
ACK |
Linux, Minix, Unix-like |
Yes |
BSD since 2003 |
No |
1985-? |
Arrowsoft Assembler |
DOS |
No |
Public Domain |
No |
No |
IBM ALP |
OS/2 |
No |
Proprietary |
No |
No |
AT&T |
Unix System V |
No |
Proprietary |
No |
1985-? |
Bruce D. Evans' as86 |
Minix 1.x, 16-bit part in Linux |
Yes |
GPL |
No |
1988-2001 |
Digital Research ASM86 |
CP/M-86, DOS, Intel's ISIS and iRMX |
No |
Proprietary |
No |
1978-1992 |
DevelSoftware Assembler |
Windows, Linux, Unix-like |
No |
Free |
Listed, N/A |
No |
FASM |
Windows, DOS, Linux, Unix-like |
Yes |
BSD with added Copyleft |
Yes |
Yes |
GAS |
Unix-like, Windows, DOS, OS/2 |
Yes |
GPL |
Yes |
Since 1987 |
GoAsm |
Windows |
No |
Free |
Yes |
Yes |
HLA |
Windows, Linux, FreeBSD, OS X |
Yes |
Public domain |
No |
Yes |
HJWASM/JWASM/WASM |
Windows, DOS, Linux, FreeBSD, OS/2 |
Yes |
Sybase Open Watcom Public License |
Yes |
Yes |
LZASM |
Windows, DOS |
No |
Free |
No |
No |
MASM |
Windows, DOS, OS/2 |
No |
Microsoft EULA |
Yes |
Since 1981 |
Mical a86 |
Unix, DOS, PC/IX |
Yes |
? |
No |
1982-1984 |
NASM |
Windows, Linux, OS X, DOS, OS/2 |
Yes |
BSD |
Yes |
Yes |
Tim Paterson's ASM |
86-DOS, DOS DEBUG |
No |
Proprietary |
No |
1979-1983 |
POASM |
Windows, Windows Mobile |
No |
Free |
Yes |
Yes |
RosAsm |
Windows |
Yes |
GPL |
No |
No |
SLR's OPTASM |
DOS |
No |
Proprietary |
No |
No |
TASM |
Windows, DOS |
No |
Proprietary |
No |
? |
TCCASM |
Unix-like, Windows |
Yes |
LGPL |
Yes |
Yes |
vasm |
various |
Yes |
Free |
No |
Yes |
Xenix |
Xenix 2.3 and 3.0 (before 1985) |
No |
Proprietary |
No |
1982-1984 |
Yasm |
Windows, DOS, Linux, Unix-like |
Yes |
BSD |
Yes |
Yes |
Liquid |
Windows, DOS |
No |
Proprietary |
Yes |
Yes |
- ^ Part of the Minix 3 source tree, but without obvious development activity. The full source history is available.
- ^ Developed by Interactive in 1986 when they ported System V to Intel iAPX286 and 80386 architectures. Archetypical of ATT syntax because it was used as reference for GAS. Still used for The SCO Group's products, UnixWare and OpenServer.
- ^ Home site does not appear active any more. Also offered as part of FreeBSD Ports, in bcc-1995.03.12.
- ^ Active and supported, but not advertised.
- ^ Developed in 1982 at MIT as a cross-assembler, it was picked up by Interactive in 1983 when they developed PC/IX under IBM contract. The syntax was later used as base for ACK assembler, to be used in Minix 1.x toolchain.
- ^ RosAsm project on WebArchive.org.
- ^ Part of the C++Builder Tool Chain, but not sold as a stand-alone product, or marketed since the CodeGear spin-off; Borland was still selling it until then. Version 5.0, the last, is dated 1996.
- ^ Turbo Assembler was developed as "Turbo Editasm" by Uriah Barnett from Speedware Inc (Sacramento, CA) between 1984 and 1987. It was later sold to (or marketed by) Borland as their Turbo Assembler.
Other
Assembler |
License |
Instruction set |
Host platform |
ALM (Assembly Language for Multics) |
MIT License |
GE-645 Honeywell 6180 |
GE-645 Honeywell 6180 |
Babbage |
Proprietary |
GEC 4000 series |
GEC 4000 series |
COMPASS[1] |
Proprietary |
CDC mainframe |
CDC mainframe |
MACRO-10 |
Free |
PDP-10 |
PDP-10 |
MACRO-11 |
Unknown |
PDP-11 |
PDP-11 |
MACRO-32 |
Unknown |
VAX |
VAX |
PASMO |
GPL |
Zilog Z80 |
numerous |
vasm |
Free |
Zilog Z80, Motorola 6800 family |
various |
MRS |
GPL |
Zilog Z80, 8080 |
ZX Spectrum, PMD-85 |
ASEM-51 |
Free |
8051 |
Embedded Systems |
GPASM |
GPL |
PIC microcontroller |
many |
ID3E |
Free for academic use |
SC123 |
SC123 emulator |
MIPS |
Free |
MIPS instruction set |
MIPS instruction set |
Symbolic Optimal Assembly Program (SOAP) |
Proprietary |
IBM 650 |
IBM 650 |
MPW IIgs Assembler |
Proprietary |
WD 65C816 |
Apple IIgs |
Meta-Symbol |
Free |
SDS/XDS Sigma systems |
SDS/XDS Sigma systems |
Autocoder[2] |
Free |
IBM 705, 14xx, 1410, 7010, 7070, 7072, 7074, 7080 |
various |
Fortran Assembly Program (FAP) |
Free |
IBM 709, 704x, 709x |
various |
Macro Assembly Program (MAP) |
Free |
IBM 709, 704x, 709x |
various |
Symbolic Programming System (SPS)[3] |
Free |
IBM 14xx, 1620, 1710 |
IBM 1401, 1440, 1460, 1620, 1710 |
ASMB, ASBL, NSBL - Numeric op codes, used for 1900 Operating System Executive |
Proprietary |
ICL 1900 |
ICL 1900 |
GINerator mnemonic opcodes, used for GEORGE (operating system) |
Proprietary |
ICL 1900 |
ICL 1900 |
PLAN mnemonic opcodes, used for commercial 1900 programs |
Proprietary |
ICL 1900 |
ICL 1900 |
UTMOST |
Unknown |
UNIVAC III |
UNIVAC III |
Notes and references
- ↑ COMPASS is a family of assemblers for disparate machines.
- ↑ AUTOCODER is actually a family of assemblers for disparate machines.
- ↑ SPS is actually a family of assemblers for disparate machines.