YASM Modular Assembler
github.com
3
Leaving SiteNav
External Link Disclaimer
You are about to visit github.com. This website is not operated by us. We are not responsible for its content or privacy practices.
About this website
YASM is a free and open-source assembler that serves as a complete rewrite and reimplementation of the NASM (Netwide Assembler) x86 and x86-64 assembler. Originally started by Peter Johnson and Michael Urman in 2001, YASM was designed to address NASM's architectural limitations, including its monolithic C codebase, lack of modularity, and limited extensibility. Key features: NASM compatibility: YASM accepts the same x86 and x86-64 assembly syntax as NASM, making it a drop-in replacement for most NASM use cases. It supports Intel syntax (the default) and AT&T syntax (via the GNU as compatibility mode). Architecture support: full x86 (16-bit, 32-bit) and x86-64 (64-bit) instruction set support, including MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX-512, and FMA extensions. Object format support: generates output in multiple formats: ELF (32 and 64-bit, for Linux and BSD), Mach-O (32 and 64-bit, for macOS), PE/COFF (32 and 64-bit, for Windows), RDOFF, and raw binary. Debugging format support: generates DWARF2, DWARF3, and STABS debugging information for debugger integration (gdb, lldb). Modular architecture: YASM's internal design separates the parser, optimizer, instruction encoder, and object file format modules, allowing new features to be added independently. This modularity also enables YASM's libyasm C library to be embedded in other applications (such as the Rust compiler's assembler backend). NASM preprocessor: includes a full NASM-compatible macro preprocessor with multi-line macros, conditional assembly, and string manipulation. Cross-platform: Linux, macOS, Windows, FreeBSD, NetBSD, OpenBSD. The project has been in maintenance mode since 2014, with NASM having regained feature parity. BSD-2-Clause.
Statistics
3
Views
0
Clicks
0
Like
0
Dislike