Software:List of assembly software and tools

From HandWiki
Short description: Assembly-language programming and binary-analysis tools

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]

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

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.[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

References

  1. "Using as". GNU Project. https://sourceware.org/binutils/docs/as/. 
  2. "Documentation". https://www.nasm.us/docs.html. 
  3. "Microsoft Macro Assembler reference". October 15, 2024. https://learn.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assembler-reference. 
  4. "flat assembler 1.73 Programmer's Manual". https://flatassembler.net/docs.php?article=manual. 
  5. "Yasm User Manual". https://www.tortall.net/projects/yasm/manual/html/manual.html. 
  6. "High Level Assembler Toolkit". IBM. https://www.ibm.com/docs/en/zos/2.5.0?topic=descriptions-high-level-assembler-toolkit. 
  7. "llvm-mc - LLVM Machine Code Playground". https://llvm.org/docs/CommandGuide/llvm-mc.html. 
  8. "Keystone Engine". https://github.com/keystone-engine/keystone. 
  9. "objdump". GNU Project. https://sourceware.org/binutils/docs/binutils/objdump.html. 
  10. "llvm-objdump - LLVM's object file dumper". https://llvm.org/docs/CommandGuide/llvm-objdump.html. 
  11. "/DISASM". August 3, 2021. https://learn.microsoft.com/en-us/cpp/build/reference/disasm. 
  12. "The Ultimate Disassembly Framework". https://www.capstone-engine.org/. 
  13. "Ghidra is a software reverse engineering framework". National Security Agency. https://github.com/NationalSecurityAgency/ghidra. 
  14. "The IDA Pro Book, 2nd Edition". https://nostarch.com/idapro2.htm. 
  15. "Toolchain". https://book.rada.re/intro/overview.html. 
  16. Borzacchiello, Luca; Coppa, Emilio; Demetrescu, Camil (2022). "SENinja: A symbolic execution plugin for Binary Ninja". SoftwareX 20. doi:10.1016/j.softx.2022.101219. 
  17. "Source and Machine Code". GNU Project. https://sourceware.org/gdb/current/onlinedocs/gdb.html/Machine-Code.html. 
  18. "The LLDB Debugger". https://lldb.llvm.org/. 
  19. "OllyDbg v1.10". https://www.ollydbg.de/. 
  20. "edb-debugger". https://github.com/eteran/edb-debugger. 
  21. "SPIM MIPS Simulator". https://spimsimulator.sourceforge.net/. 
  22. "MARS MIPS Assembler and Runtime Simulator". November 12, 2025. https://computerscience.missouristate.edu/mars-mips-simulator.htm. 
  23. "RARS -- RISC-V Assembler and Runtime Simulator". https://github.com/TheThirdOne/rars. 
  24. "Microprocessor Emulator". November 8, 2004. https://archive.org/details/tucows_325007_Emu8086_-_Microprocessor_Emulator. 
  25. "WebAssembly". https://webassembly.org/. 
  26. Chisnall, David (June 12, 2017). "Modern Intermediate Representations (IR)" (PDF). LLVM Summer School. Paris: LLVM. https://llvm.org/devmtg/2017-06/1-Davis-Chisnall-LLVM-2017.pdf. Retrieved May 12, 2026. 
  27. "Multi-Level Intermediate Representation Overview". https://mlir.llvm.org/. 
  28. "SPIR-V Specification". https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html.