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.1
|
| NASM
|
Assembler and disassembler
|
x86 and x86-64
|
NASM is an assembler for the Intel x86 architecture and supports multiple object-file formats.2
|
| 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.3
|
| FASM
|
Assembler
|
x86 and x86-64
|
Flat assembler is a multi-pass assembler for x86-family processors.4
|
| Yasm
|
Assembler
|
x86 and AMD64
|
Yasm is a modular assembler that supports NASM and GAS syntax.5
|
| 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.6
|
| 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.7
|
| Keystone Engine
|
Assembler framework
|
Multiple architectures
|
Keystone is a lightweight multi-platform assembler framework with bindings for several programming languages.8
|
| 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.9
|
| 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.10
|
| 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.11
|
| Capstone
|
Disassembly framework
|
Multiple architectures
|
Capstone is a lightweight multi-platform, multi-architecture disassembly framework used in binary analysis and reverse engineering.12
|
| 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.13
|
| 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.14
|
| radare2
|
Reverse-engineering framework
|
Multiple architectures and binary formats
|
radare2 is a command-line reverse-engineering toolkit with libraries, tools and scripting interfaces.15
|
| 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.16
|
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.17
|
| LLDB
|
Debugger
|
Multiple architectures
|
LLDB is a debugger in the LLVM project and uses LLVM components including the LLVM disassembler.18
|
| 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.19
|
| edb
|
Graphical debugger
|
AArch32, x86 and x86-64
|
edb is a cross-platform debugger inspired by OllyDbg.20
|
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.21
|
| MARS
|
Educational IDE and simulator
|
MIPS
|
MARS is a lightweight interactive development environment for programming in MIPS assembly language.22
|
| 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.23
|
| emu8086
|
Emulator and assembler
|
Intel 8086
|
emu8086 is an 8086 microprocessor emulator with an integrated assembler, often used for educational assembly-language programming.24
|
| 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.25
|
| 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.26
|
| 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.27
|
| SPIR-V
|
Binary intermediate language
|
Graphics shaders and compute kernels
|
A standardized intermediate form used by APIs such as Vulkan, OpenGL, and OpenCL.28
|
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:
See also
See also
References
References
- "Using as". sourceware.org. GNU Project. Retrieved May 10, 2026.
- "Documentation". NASM. Retrieved May 10, 2026.
- "Microsoft Macro Assembler reference". Microsoft Learn. October 15, 2024. Retrieved May 10, 2026.
- "flat assembler 1.73 Programmer's Manual". flatassembler.net. Retrieved May 10, 2026.
- "Yasm User Manual". tortall.net. Retrieved May 10, 2026.
- "High Level Assembler Toolkit". IBM Documentation. IBM. Retrieved May 10, 2026.
- "llvm-mc - LLVM Machine Code Playground". LLVM Documentation. Retrieved May 10, 2026.
- "Keystone Engine". GitHub. Retrieved May 10, 2026.
- "objdump". GNU Binary Utilities. GNU Project. Retrieved May 10, 2026.
- "llvm-objdump - LLVM's object file dumper". LLVM Documentation. Retrieved May 10, 2026.
- "/DISASM". Microsoft Learn. August 3, 2021. Retrieved May 10, 2026.
- "The Ultimate Disassembly Framework". Capstone. Retrieved May 10, 2026.
- "Ghidra is a software reverse engineering framework". GitHub. National Security Agency. Retrieved May 10, 2026.
- "The IDA Pro Book, 2nd Edition". No Starch Press. Retrieved May 12, 2026.
- "Toolchain". The Official Radare2 Book. Retrieved May 10, 2026.
- Borzacchiello, Luca; Coppa, Emilio; Demetrescu, Camil (2022). "SENinja: A symbolic execution plugin for Binary Ninja". SoftwareX. 20 101219. doi:10.1016/j.softx.2022.101219. hdl:11385/236289.
- "Source and Machine Code". Debugging with GDB. GNU Project. Retrieved May 10, 2026.
- "The LLDB Debugger". LLDB Documentation. Retrieved May 10, 2026.
- "OllyDbg v1.10". OllyDbg. Retrieved May 10, 2026.
- "edb-debugger". GitHub. Retrieved May 10, 2026.
- "SPIM MIPS Simulator". SourceForge. Retrieved May 10, 2026.
- "MARS MIPS Assembler and Runtime Simulator". Missouri State University. November 12, 2025. Retrieved May 10, 2026.
- "RARS -- RISC-V Assembler and Runtime Simulator". GitHub. Retrieved May 10, 2026.
- "Microprocessor Emulator". Internet Archive. November 8, 2004. Retrieved May 10, 2026.
- "WebAssembly". WebAssembly. Retrieved May 11, 2026.
- Chisnall, David (June 12, 2017). Modern Intermediate Representations (IR) (PDF). LLVM Summer School. Paris: LLVM. Retrieved May 12, 2026.
- "Multi-Level Intermediate Representation Overview". MLIR. Retrieved May 11, 2026.
- "SPIR-V Specification". Khronos Group. Retrieved May 11, 2026.
External links
External links