NASM

From Free net encyclopedia

This article is about an assembler. For the American museum, see National Air and Space Museum.

NASM, the Netwide Assembler, is a free software Intel x86 assembler. It can be used to write both 16-bit and 32-bit (IA-32) programs. 32-bit programs can be written for NASM in such a way that they are portable between any 32-bit x86 OSes, if the right libraries are used.

NASM will output various binary formats on any machine, ranging from COFF (and the subtly different Portable Executable format used by Microsoft Windows) and a.out to ELF and the native Minix binary format (NASM even defines its own binary format, RDOFF, which is currently used only by the RadiOS operating system project). This allows one to cross-assemble programs for one x86 operating system on a different, presumably more capable, one. In addition, NASM can create flat binary files, usable in writing boot loaders, ROM images, and various facets of OS development. NASM will even run on non-x86 platforms, such as the Sparc and the PowerPC, even though it will not output programs usable by those machines.

NASM's overriding philosophy is to always use the approach in any situation that is easiest for a programmer familiar with Intel assembly language to understand. Therefore, it uses the traditional Intel syntax for x86 assembly language (whereas other free assemblers, such as the GNU Assembler (GAS), use the AT&T syntax). It also avoids facilities such as automatic generation of segment overrides (and the related ASSUME directive) used by MASM and compatible assemblers, as these can often be confusing -- programmers should track the contents of segment registers and location of variables they refer to themselves.

NASM was originally written by Simon Tatham with assistance from Julian Hall, and is currently developed by a small team of maintainers at SourceForge. It was originally released under its own license, but this license was later changed to the GNU Lesser General Public License following a number of political problems caused by the choice of license.

External links

de:NASM fr:Netwide assembler pl:Nasm