Comparison of assemblers

This is a list of assemblers: computer programs that translate assembly language source code into binary programs. Some assemblers are components of a compiler system for a high level language and may have limited or no usable functionality outside of the compiler system. Some assemblers are hosted on the target processor and operating system, while other assemblers (cross-assemblers) may run under an unrelated operating system or processor. For example, assemblers for embedded systems are not usually hosted on the target system since it would not have the storage and terminal I/O to permit entry of a program from a keyboard. An assembler may have a single target processor or may have options to support multiple processor types. Very simple assemblers may lack features, such as macros, present in more powerful versions.

As part of a compiler suite

Single target assemblers

6502 assemblers

Assembler License Instruction set Host platform
64tass GNU GPL MOS Technology 6502, WDC 65C02, WDC 65816/65802 various
ACME GNU 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 GNU 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 GNU GPL MOS Technology 6502, WDC 65C02, WDC 65816/65802 various
CSC6502 Proprietary MOS Technology 6502, WDC 65C02 various
dasm GNU GPL MOS Technology 6502, others various
dreamass GNU 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
Macross MIT MOS Technology 6502 various
MADS Public domain MOS Technology 6502, WDC 65816/65802 various
MAE ? MOS Technology 6502, WDC 65C02, WDC 65816/65802 Atari 8-bit family
Magic ASM ? HuC6280 DOS
Merlin Proprietary MOS Technology 6502, WDC 65C02, WDC 65816/65802 Apple II series, Commodore 64, Commodore 128
MOSASM GNU GPL MOS Technology 6502 various
NESASM ? Ricoh 2A03 DOS
Ophis MIT MOS Technology 6502, WDC 65C02, 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 GNU GPL MOS Technology 6502 various
WLA DX GNU GPL MOS Technology 6502, others various
XA65 GNU GPL MOS Technology 6502, others various
XASM Public domain MOS Technology 6502 various

680x0 assemblers

Assembler Open source License Instruction set Host platform Development active
A68K No Free Motorola 680x0 Commodore Amiga No
ASM-One Macro Assembler No Free Motorola 680x0 Commodore Amiga No
Digital Research Assembler No Proprietary Motorola 680x0 Atari ST No
Fantasm No Proprietary Motorola 680x0 Apple Macintosh No
GFA-Assembler No Proprietary Motorola 680x0 Atari ST No
GST Macro Assembler No Proprietary Motorola 680x0 Atari ST No
HiSoft Devpac Assembler No Proprietary Motorola 680x0 Commodore Amiga, Atari ST No
Mac Assembler No Proprietary Motorola 680x0 Apple Macintosh No
MaxonASM No Proprietary Motorola 680x0 Commodore Amiga No
Metacomco Macro Assembler No Proprietary Motorola 680x0 Commodore Amiga, Atari ST No
MPW Assembler No Proprietary Motorola 680x0 Apple Macintosh No
OMA No Proprietary Motorola 680x0 Commodore Amiga No
PhxAss No Free Motorola 680x0 Commodore Amiga No
Pure Assembler No Proprietary Motorola 680x0 Atari ST No
Data Becker Profimat No Proprietary Motorola 680x0 Atari ST No
Seka Assembler No Proprietary Motorola 680x0 Commodore Amiga, Atari ST No
TurboAss No Free Motorola 680x0 Atari ST No
vasm Yes Free Motorola 680x0 various Yes

ARM assemblers

Assembler License Instruction set Host platform
Archimedes Assembler Proprietary ARM Acorn Archimedes
ARM, inc. armasm Proprietary ARM Linux, Windows
FASMARM Free ARM x86[1]
IAR ARM Assembler Proprietary ARM Windows
Microsoft armasm Proprietary ARM Visual Studio 2005
vasm Free ARM various

IBM mainframe assemblers

Assembler License Instruction set Host platform
BAL Free IBM System/360 IBM BPS/360
Dignus Systems/ASM Proprietary z/Architecture numerous
HLASM Proprietary z/Architecture numerous
IBM Assembler D Free IBM System/360 IBM DOS/360
IBM Assembler F Free IBM System/360 IBM OS/360 and CP-67/CMS
IBM Assembler H Proprietary IBM System/360 and System/370 IBM OS/360 and successors
IBM Assembler XF Free IBM System/370 numerous
PL360 Free IBM System/360 IBM OS/360

Power Architecture assemblers

Assembler License Instruction set Host platform
IBM AIX assembler Proprietary POWER IBM AIX
MPW Power Assembler Proprietary PowerPC Apple Power Macintosh
Power Fantasm Proprietary PowerPC Apple Power Macintosh
StormPowerASM Proprietary PowerPC PowerPC Amiga
vasm Free PowerPC various

x86 assemblers

Assembler Operating system Open source License x86-64 Development active
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 GNU 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 GNU GPL Yes Since 1987
GoAsm Windows No Free Yes Yes
HLA Windows, Linux, FreeBSD, macOS Yes Public domain No Yes
Open Watcom Assembler (HJWASM a.k.a UASM, JWASM, WASM) Windows, DOS, Linux, FreeBSD, OS/2 Yes Sybase Open Watcom Public 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, macOS, 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 GNU 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
  1. ^ Part of the MINIX 3 source tree, but without obvious development activity. The full source history is available.
  2. ^ Developed by Interactive Systems Corporation in 1986 when they ported UNIX 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.
  3. ^ Home site appears inactive. Also offered as part of FreeBSD Ports, in bcc-1995.03.12.
  4. ^ Active, supported, but unadvertised.
  5. ^ Developed in 1982 at MIT as a cross-assembler, it was picked up by Interactive Systems Corporation 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.
  6. ^ RosAsm project on WebArchive.org.
  7. ^ 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.
  8. ^ Turbo Assembler was developed as Turbo Editasm by Uriah Barnett from Speedware Inc (Sacramento, CA) between 1984 and 1987, then later sold to, or marketed by, Borland as their Turbo Assembler.

Other

Assembler License Instruction set Host platform
Assembly Language for Multics (ALM) MIT GE-645
Honeywell 6180
GE-645
Honeywell 6180
Babbage Proprietary GEC 4000 series GEC 4000 series
COMPASS[2] Proprietary CDC mainframe CDC mainframe
MACRO-10 Free PDP-10 PDP-10
MACRO-11 Free PDP-11 PDP-11
MACRO-32 Free VAX VAX
PASMO GNU GPL Zilog Z80 numerous
SUPERAS Public domain Hitachi SH2 Win32
vasm Free Zilog Z80, Motorola 6800 family various
MRS GNU GPL Zilog Z80, 8080 ZX Spectrum, PMD-85
ASEM-51 Free 8051 Embedded systems
GPASM GNU GPL PIC microcontroller many
ID3E Free for academic use SC123 SC123 emulator
MIPS Free MIPS MIPS
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[3] 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)[4] 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 ? UNIVAC III UNIVAC III

Notes and references

  1. "FASMARM v1.41 - Cross assembler for ARM CPUs". Just something to note in case you are confused, FASMARM generates ARM code binaries but FASMARM still runs on the X86 processor, it does not run on the ARM processor.
  2. COMPASS is a family of assemblers for disparate machines.
  3. Autocoder is actually a family of assemblers for disparate machines.
  4. SPS is actually a family of assemblers for disparate machines.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.