Original author(s) | Simon Tatham, Julian Hall |
---|---|
Developer(s) | H. Peter Anvin, et al. |
Stable release |
2.12.02 / July 6, 2016
|
Operating system | Windows, Unix-like, OS/2, OS X, DOS |
Available in | English |
Type | x86 assembler |
License | BSD 2-clause |
Website | www |
Developed by | Julian Hall |
---|---|
Type of format | Object file format |
Container for | Object code |
The Netwide Assembler (NASM) is an assembler and disassembler for the Intel x86 architecture. It can be used to write 16-bit, 32-bit (IA-32) and 64-bit (x86-64) programs. NASM is considered to be one of the most popular assemblers for Linux.
NASM was originally written by Simon Tatham with assistance from Julian Hall. As of 2016[update], it is maintained by a small team led by H. Peter Anvin. It is open-source software released under the terms of a simplified (2-clause) BSD license.
NASM can output several binary formats including COFF, Portable Executable, a.out, Executable and Linkable Format (ELF), Mach-O and binary file (.bin, binary disk image, used to compile operating systems), though position-independent code is only supported for ELF object files. NASM also has its own binary format called RDOFF.
The variety of output formats allows retargeting programs to virtually any x86 operating system (OS). Also, NASM can create flat binary files, usable to write boot loaders, read-only memory (ROM) images, and in various facets of OS development. NASM can run on non-x86 platforms, such as PowerPC and SPARC, though it cannot generate programs usable by those machines.