Comparison of assemblers

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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[edit]

Single target assemblers[edit]

6502 assemblers[edit]

Assembler License Instruction set Host platform
Atari Assembler Editor Proprietary MOS Technology 6502 Atari 8-bit family
Atari Macro Assembler Proprietary MOS Technology 6502 Atari 8-bit family
Lisa Proprietary MOS Technology 6502 Apple II series
MAC/65 Proprietary MOS Technology 6502, WDC 65C02 Atari 8-bit family
Merlin Free MOS Technology 6502, WDC 65C02 Apple II series
vasm Free MOS Technology 6502 various
k2asm Artistic License MOS Technology 6502 Linux, Windows, macOS, possibly other Unices

680x0 assemblers[edit]

Assembler Open source License Instruction set Host platform Development active
ASM-One Macro Assembler No Free Motorola 680x0 Commodore Amiga No
vasm Yes Free Motorola 680x0 various Yes

ARM assemblers[edit]

Assembler License Instruction set Host platform
GNU Assembler Free ARM various
vasm Free ARM various

IBM mainframe assemblers[edit]

Assembler License Instruction set Host platform
BAL Free IBM System/360 IBM BPS/360
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[edit]

Assembler License Instruction set Host platform
IBM AIX assembler Proprietary POWER IBM AIX
vasm Free PowerPC various

x86 assemblers[edit]

Assembler Operating system FLOSS License Development active
A86/A386 Windows, DOS No Proprietary No
ACK Linux, MINIX, Unix-like Yes BSD since 2003 1985-? [1]
IBM ALP OS/2 No Proprietary No
AT&T Unix System V No Proprietary 1985-?[2]
Digital Research ASM86 CP/M-86, DOS, Intel's ISIS and iRMX No Proprietary 1978-1992
FASM Windows, DOS, Linux, Unix-like Yes BSD with added Copyleft Yes
GAS Unix-like, Windows, DOS, OS/2 Yes GNU GPL Since 1987
HLA Windows, Linux, FreeBSD, macOS Yes Public domain Yes
Open Watcom Assembler (HJWASM a.k.a UASM, JWASM, WASM) Windows, DOS, Linux, FreeBSD, OS/2 approved by OSI, but not by FSF Sybase Open Watcom Public Yes
MASM Windows, DOS, OS/2 No Microsoft EULA Since 1981[3]
NASM Windows, Linux, macOS, DOS, OS/2 Yes BSD Yes
Tim Paterson's ASM 86-DOS, DOS DEBUG No Proprietary 1979-1983
TASM Windows, DOS No Proprietary ?[4][5]
TCCASM Unix-like, Windows Yes LGPL Yes
vasm various Yes Free Yes
Xenix Xenix 2.3 and 3.0 (before 1985) No Proprietary 1982-1984
Yasm Windows, DOS, Linux, Unix-like Yes BSD Yes
  1. ^ Part of the MINIX 3 source tree, but without obvious development activity.
  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.

x86-64 assemblers[edit]

Assembler Operating system Open source License Development active
FASM Windows, DOS, Unix-like Yes BSD Yes
GAS Unix-like, Windows, DOS, OS/2 Yes GNU GPL Yes
MASM Windows, DOS, OS/2 No Commercial Yes
NASM Windows, Linux, macOS, DOS, OS/2 Yes BSD Yes
Open Watcom Assembler Windows, DOS, Linux, FreeBSD, OS/2 Yes Sybase Open Watcom Public Yes
POASM Windows, Windows Mobile No Freeware Yes
TCCASM Unix-like, Windows Yes GNU LGPL Yes
Yasm Windows, DOS, Unix-like Yes BSD Yes

Other[edit]

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[1] Proprietary CDC mainframe CDC mainframe
MACRO-10 Free PDP-10 PDP-10
MACRO-11 Free PDP-11 PDP-11
vasm Free Zilog Z80, Motorola 6800 family various
GPASM GNU GPL PIC microcontroller many
MIPS Free MIPS MIPS
Symbolic Optimal Assembly Program (SOAP) Proprietary IBM 650 IBM 650
Technical Assembly System (TASS) Free IBM 650 IBM 650
Autocoder[2] Free IBM 705, 14xx, 1410, 7010, 7070, 7072, 7074, 7080 various
Fortran Assembly Program (FAP) Free IBM 709, 704x, 709x Fortran Monitor System, IBSYS
GCOS Macro Assembly Program (GMAP) Free GE-600 series, Honeywell 6000 series GCOS
Macro Assembly Program (MAP) Free IBM 709, 704x, 709x IBSYS/IBJOB on 709, 704x, 709x
Meta-Symbol Free SDS Sigma series BTM, UTS, CP-V
Symbolic Assembly Program (SAP) Free IBM 704 IBM 704
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
Single Address Assembly Language (SAAL) Free UNIVAC 1005 UNIVAC 1005
Sleuth Free UNIVAC 1107 EXEC, EXEC II, EXEC 8
Meta Assembler (MASM) Free UNIVAC 1100/2200 series UNIVAC EXEC 8
UTMOST ? UNIVAC III UNIVAC III

Notes and references[edit]

  1. ^ COMPASS is a family of assemblers for disparate machines.
  2. ^ Autocoder is actually a family of assemblers for disparate machines.
  3. ^ SPS is actually a family of assemblers for disparate machines.

External links[edit]