Введение

Это неполное сравнение ассемблеров. Некоторые ассемблеры являются компонентами компиляторной системы для языка программирования высокого уровня и могут иметь ограниченную или вообще не иметь полезной функциональности вне этой системы. Некоторые ассемблеры работают на целевом процессоре и операционной системе, в то время как другие (кросс-ассемблеры) могут выполняться под другой операционной системой или на другом процессоре. Например, ассемблеры для встраиваемых систем обычно не устанавливаются на целевую систему, поскольку она не обладает достаточной памятью и терминальным вводом-выводом для ввода программы с клавиатуры. Ассемблер может быть ориентирован на один целевой процессор или предоставлять опции для поддержки нескольких типов процессоров.

Как часть компиляторного пакета

GNU Assembler (GAS): GPL: множество целевых наборов инструкций, включая архитектуры ARM, Atmel AVR, x86, x86 64, Freescale 68HC11, Freescale v4e, Motorola 680x0, MIPS, PowerPC, IBM System z, TI MSP430, Zilog Z80. SDAS (ответвление от ASxxxx Cross Assemblers и часть проекта Small Device C Compiler): GPL: несколько целевых наборов инструкций, включая Intel 8051, Zilog Z80, Freescale 68HC08, микроконтроллеры PIC. Amsterdam Compiler Kit (ACK) поддерживает множество архитектур 1980-х годов, включая 6502, 6800, 680x0, ARM, x86, Zilog Z80 и Z8000. LLVM ориентирован на множество платформ, однако его основная задача – не машинозависимая генерация кода; вместо этого используется промежуточное представление, представляющее собой типизированную ассемблею более высокого уровня. Тем не менее, для наиболее распространенных целевых платформ проект LLVM MC (машинный код) предоставляет ассемблер как в составе компиляторов, так и в виде отдельного инструмента. Некоторые другие реализации языков с самостоятельным хостингом (например, Go, Free Pascal, SBCL) имеют собственные ассемблеры для нескольких целевых платформ. Их можно использовать для встроенной ассемблеи внутри языка или даже включать в качестве библиотеки, но они не всегда подходят для использования вне их окружения – отсутствует инструмент командной строки, или в качестве входных данных можно использовать только промежуточное представление, или набор поддерживаемых целевых платформ очень ограничен.

6502 сборщики

Разработчик ассемблера FOSS Лицензия Набор инструкций Хост-платформа Atari Ассемблер Редактор Shepardson Microsystems MOS Technology 6502 Atari 8-битная серия Atari Macro Assembler Shepardson Microsystems MOS Technology 6502 Atari 8-битная серия EDASM Apple Computer MOS Technology 6502 Apple DOS 3.x k2asm Андре Каесмачер, Хауке Брандес, Börje Sieling ✔ MOS Technology 6502 Linux, Windows, macOS, возможно другие Unix-подобные системы Лиза Рэндалл Хайд MOS Technology 6502 Apple II серии MAC/65 Optimized Systems Software MOS Technology 6502, WDC 65C02 Atari 8-битная серия Мерлин Глен Брэдон ✔ MOS Technology 6502, WDC 65C02 Apple II серии ORCA/M The Byte Works, свободно для некоммерческого использования MOS Technology 6502, WDC 65C02, WDC 65C816 ProDOS 8/16, GS/OS RMAC Джеймс Хаммонс, Джордж Накос, Лэндон Дайер ✔ MOS Technology 6502 Linux, Windows, macOS SynAssembler Synapse Software MOS Technology 6502 Atari 8-битная серия VASM Фолькер Бартхельманн, Франк Вилле MOS Technology 6502 различные xa65 Камерон Кайзер, Андре Фаша ✔ GPL MOS Technology 6502, WDC 65C02, WDC 65C816 Linux, различные XASM Пётр Фусик ✔ MOS Technology 6502 Linux, Windows, macOS

Сборщики мейнфреймов

Разработчик ассемблеров FOSS Лицензия Набор инструкций Хост-платформа Язык ассемблера для Multics (ALM) ✔ GE 645Honeywell 6180 GE 645Honeywell 6180 705 Автокодер IBM IBM 705 1410/7010 OS Автокодер IBM IBM 14107010 IBM 1410 Процессор Операционная система (1410 PR 155) 7070/7074 Автокодер IBM IBM 7070IBM 70727074 7080 Автокодер III IBM IBM 7080 IBM 7058 Процессор COMPASS Control Data Corporation CDC серия 3000 (младшая) CDC MASTERMSOSRTS OSSCOPECOMPASS Control Data Corporation CDC серия 3000 (старшая) CDC SCOPECOMPASS Control Data Corporation CDC серия 6000 7600Cyber 70, 170 CDC KronosNOSNOS/BESCOPE Программа ассемблирования Фортрана (FAP) IBM 709, 704x, 709x Мониторная система Фортрана, IBSYS GCOS Программа макроассемблирования (GMAP) GE 600 серия, Honeywell 6000 серия GCOS Программа макроассемблирования (MAP) IBM 709, 704x, 709x IBSYS/IBJOB на 709, 704x, 709x Программа символической ассемблировки (SAP) IBM 704 IBM 704 Базовый язык ассемблирования (BAL) IBM IBM System/360 IBM BPS/360 ASSIST Penn State University Общественное достояние IBM System/360 MVS UNIVAC VS/9 Ассемблер Unisys Univac 9060 и 9070 (аналогично IBM System/370) VS/9 BS2000 Ассемблер H Fujitsu Fujitsu Technology Series SE (аналогично IBM System/370) BS2000 z390 Portable Mainframe Assembler Don Higgins Симулированный IBM System/370 Симулированный MVS IBM Ассемблер высокого уровня (HLASM) IBM IBM System/370. z/Architecture z/OS, z/VSE, z/VM IBM Assembler D IBM IBM System/360 IBM OS/360 IBM Assembler E IBM IBM System/360 IBM OS/360 IBM Assembler F IBM IBM System/360 IBM OS/360 и CP 67/CMS Assembler G Университет Ватерлоо IBM System/360 и другие (таблично-управляемый) IBM OS/360 и CP 67/CMS IBM Assembler H IBM IBM System/360 и System/370 IBM OS/360 и последующие версии IBM Assembler XF IBM IBM System/370 многочисленные PL/360 Niklaus Wirth ✔ IBM System/360 IBM OS/360 Метасимвольный Scientific Data Systems (SDS) SDS Серия Sigma BTM, UTS, CP V Xerox Программа ассемблирования (AP) Xerox Data Systems SDS Серия Sigma, Xerox серия 500 CP V Метаассемблер (MASM) UNIVAC UNIVAC 1100/2200 серия UNIVAC EXEC 8

сборщики x86

Ассемблер Разработчик Хост-платформа FOSS Лицензия x86 64 Разработка активная A86/A386 Эрик Айзексон Windows, DOS ACK Эндрю Таненбаум, Сериэль Джейкобс Linux, MINIX, Unix-подобные ✔ 1985 ? IBM ALP IBM OS/2 Intel ASM86 Intel DOS AT&T AT&T Unix System V Digital Research RASM 86 Relocating Assembler Digital Research CP/M 86, DOS, Intel's ISIS и iRMX FASM Томаш Грыштар Windows, DOS, Linux, Unix-подобные ✔ ✔ GAS GNU Project Unix-подобные, Windows, DOS, OS/2 ✔ v3 HLA Рэндалл Хайд Windows, Linux, FreeBSD, macOS ✔ Open Watcom Assembler (HJWASM a. k. a. UASM, JWASM, WASM) Watcom Linux, Windows, DOS, FreeBSD, OS/2 одобрены OSI, но не FSF ✔ MASM Microsoft Windows, DOS, OS/2 NASM Саймон Татам, Джулиан Холл, Ханс Петер Анвин и др. Linux, macOS, Windows, DOS, OS/2 ✔ ✔ POASM Windows, Windows Mobile ✔ ASM Тима Патерсона Tim Paterson 86 DOS, DOS DEBUG TASM Borland Windows, DOS TCCASM Фабрис Беллард Unix-подобные, Windows ✔ VASM Волькер Бартельман, Франк Вилле различные ✔ 86 Ассемблер для DOS Стивен Даффи DOS ✔ Xenix Microsoft Xenix 2.3 и 3.0 (до 1985) YASM Питер Джонсон Windows, DOS, Linux, Unix-подобные ✔ Часть дерева исходного кода MINIX 3, но без явной активности разработки. Разработан компанией Interactive Systems Corporation в 1986 году при портировании UNIX System V на архитектуры Intel iAPX286 и 80386. Является архетипичным примером синтаксиса ATT, поскольку использовался в качестве эталона для GAS. Все еще используется в продуктах The SCO Group, UnixWare и OpenServer. Активно поддерживается, но не рекламируется. Является частью цепочки инструментов C++Builder, но не продается как отдельный продукт и не продвигается с момента выделения CodeGear; Borland продолжал продавать его до этого момента. Версия 5.0, последняя, датируется 1996 годом. Turbo Assembler был разработан как Turbo Editasm Уриа Барнеттом из Speedware Inc (Сакраменто, Калифорния) в период с 1984 по 1987 год, а затем был продан или распространялся Borland под названием Turbo Assembler. Последняя стабильная версия 1.3.0 была выпущена в августе 2014 года, и с тех пор поддерживается в минимальном режиме: https://github.com/yasm/yasm

Сборщики Z80

+AssemblerDeveloperHost platformFOSSLicenseDevelopment activeMicrosoft MACRO 80MicrosoftCP/M, ISIS II, TRSDOS, TEKDOS, MSX DOSZeus AssemblerCrystal ComputingZX Spectrumz80asmPeter Kollner, Paul Flo Williams, John Critchley, Bas WijnenUnix-подобные, Windows✔sjasmplusSjoerd Mastijn, Aprisobal, Peter Helcmanovský, Unix-подобные, Windows✔RasmBerge EdouardUnix-подобные, Windows✔✔

Ремаркетинговые/крестные сборщики

Разработчик ассемблера FOSS License Набор инструкций Хост-платформа Макроассемблер AS Alfred Arnold 29xxx, AVR, 65816, ACE, F2MC 8L, F2MC 16L, HMCS400, 6301, 6309, H8/300(H), H8/500, SH7000 / SH7600 / SH7700, HuC6280, PPC403GA, 4004/4040, 8008, MCS 48, MCS 41, MCS 51, MCS 251, MCS 96/196/296, 8080/8085, Win32, DOS/DPMI, DOS (поддержка прекращена), OS/2 (поддержка прекращена), Linux ASxxxx Кросс-ассемблеры Alan R. Baldwin ✔ 1802, S2650, SC/MP, MPS430, 6100, 61860, 6500, 6800(6802/6808), 6801(6803/HD6303), 6804, 6805, 68HC(S)08, 6809, 68HC11, 68HC(S)12, 68HC16, 740, 78K/0, 78K/0S, 8008, 8008S, 8048(8041/8022/8021), 8051, 8085(8080), AT89LP, 8X300(8X305), DS8XCXXX, AVR, EZ80, F2MC8L/FX, F8/3870, Game Boy(sm83), H8/3xx, Cypress PSoC(M8C), PIC, Rabbit 2000/3000, ST6, ST7, ST8, Z8, Z80(HD64180) и серия Z280 Win32, DOS, Linux, Android