This is a list of assembly software and tools, including software used for assembly language programming, machine code generation, disassembly, debugging, binary analysis, reverse engineering, and instruction-set simulation.

Assemblers and machine-code generators Name Type Main scope Notes GNU Assembler Assembler Multiple architectures The GNU assembler, commonly invoked as as, is part of GNU Binutils and is used with GNU toolchains. NASM Assembler and disassembler x86 and x86-64 NASM is an assembler for the Intel x86 architecture and supports multiple object-file formats. MASM Macro assembler x86 and x64 Microsoft's Macro Assembler includes a macro language and is documented as part of Microsoft's C++ build tools. FASM Assembler x86 and x86-64 Flat assembler is a multi-pass assembler for x86-family processors. Yasm Assembler x86 and AMD64 Yasm is a modular assembler that supports NASM and GAS syntax. High Level Assembler Mainframe assembler IBM z/OS, z/VM and z/VSE IBM High Level Assembler is used for assembler-language development on IBM mainframe operating systems. LLVM-MC Machine-code tool Multiple architectures supported by LLVM llvm-mc takes assembly code for a specified architecture as input and can generate object files or executables, encode instructions, and disassemble byte strings. Keystone Engine Assembler framework Multiple architectures Keystone is a lightweight multi-platform assembler framework with bindings for several programming languages.

Disassemblers and binary-analysis tools Name Type Main scope Notes GNU objdump Object-file utility and disassembler Multiple object formats and architectures objdump can display information from object files and can be used for disassembly. LLVM-objdump Object-file utility and disassembler Multiple object formats and architectures llvm-objdump prints the contents of object files and linked images and includes disassembly options. DUMPBIN Object-file utility and disassembler COFF, PE and related Microsoft binary formats The Microsoft DUMPBIN /DISASM option displays disassembly of code sections in native files. Capstone Disassembly framework Multiple architectures Capstone is a lightweight multi-platform, multi-architecture disassembly framework used in binary analysis and reverse engineering. Ghidra Reverse-engineering suite Multiple architectures and executable formats Ghidra is a software reverse-engineering framework created and maintained by the National Security Agency Research Directorate. IDA Pro Disassembler, decompiler and debugger Multiple processor families IDA Pro is a commercial, multi-platform and multi-processor disassembler used for debugging and reverse engineering compiled programs. radare2 Reverse-engineering framework Multiple architectures and binary formats radare2 is a command-line reverse-engineering toolkit with libraries, tools and scripting interfaces. Binary Ninja Disassembler and binary-analysis tool Multiple architectures and binary formats Binary Ninja is a disassembler used for reverse-engineering tasks and binary analysis.

Debuggers with assembly-level features Name Type Main scope Notes GDB Debugger Multiple architectures GDB can display machine instructions with its disassemble command and can map source lines to program addresses. LLDB Debugger Multiple architectures LLDB is a debugger in the LLVM project and uses LLVM components including the LLVM disassembler. OllyDbg Assembly-level debugger 32-bit Windows x86 programs OllyDbg is an assembler-level analyzing debugger for Microsoft Windows, with emphasis on binary code analysis. edb Graphical debugger AArch32, x86 and x86-64 edb is a cross-platform debugger inspired by OllyDbg.

Educational IDEs, simulators and emulators Name Type Main scope Notes SPIM Simulator and debugger MIPS32 SPIM is a self-contained simulator that reads and executes MIPS32 assembly language programs. MARS Educational IDE and simulator MIPS MARS is a lightweight interactive development environment for programming in MIPS assembly language. RARS Assembler and runtime simulator RISC-V RARS assembles and simulates RISC-V assembly language programs and is intended for people getting started with RISC-V. emu8086 Emulator and assembler Intel 8086 emu8086 is an 8086 microprocessor emulator with an integrated assembler, often used for educational assembly-language programming.

Portable and intermediate assembly-like languages Name Type Main use Notes WebAssembly Portable bytecode and text format Web and server-side applications A low-level, assembly-like compilation target designed for portable execution. LLVM IR Intermediate representation Compiler optimization and code generation The LLVM language reference describes LLVM IR as an SSA-based assembly language used throughout the LLVM compilation strategy. MLIR Multi-level intermediate representation Compiler infrastructure for heterogeneous hardware and domain-specific compilers An LLVM subproject for building reusable and extensible compiler infrastructure across multiple levels of abstraction. SPIR-V Binary intermediate language Graphics shaders and compute kernels A standardized intermediate form used by APIs such as Vulkan, OpenGL, and OpenCL.

Assembly language families Assembly language is not a single programming language, but a family of low-level languages associated with particular instruction set architectures and processor families.

Examples include:

AArch64 assembly ARB assembly language ARM assembly AVR assembly Autocoder COMPASS High Level Assembly Honeywell ARGUS IBM 1401 Symbolic Programming System IBM Basic assembly language and successors System/360 assembly IBM Z assembly 8051 assembly MACRO-10 MACRO-11 MIPS assembly 6800 assembly 68HC08 assembly 68HC11 assembly 68000 assembly 6502 assembly MSP430 assembly Parrot assembly language PIC assembly PowerPC assembly RISC-V assembly SPARC assembly Typed assembly language VAX MACRO 65C02 assembly 65C816 assembly x86 assembly x86-64 assembly Z80 assembly Z8000 assembly

See also

Assembler (computing) Comparison of assemblers Executable and Linkable Format Instruction set architecture List of software programmed in assembly language Lists of programming software development tools Mach-O Object file Opcode Portable Executable Software programmed in assembly language

References

External links