Netwide Assembler

related topics
{system, computer, user}
{math, number, function}
{work, book, publish}

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[1] and is the second most popular assembler overall, behind MASM.[2]

NASM was originally written by Simon Tatham with assistance from Julian Hall, and is currently maintained by a small team led by H. Peter Anvin.[3] It is available as free software under the terms of the simplified (2-clause) BSD license.[4]

Contents

Features

NASM can output several binary formats including COFF, Portable Executable, a.out, ELF and Mach-O, though Position-independent code is only supported for ELF object files. NASM also has its own binary format called RDOFF.[5]

The variety of output formats allows one to retarget programs to virtually any x86 operating system. In addition, NASM can create flat binary files, usable in writing boot loaders, ROM images, and various facets of OS development.[5] NASM can run on non-x86 platforms, such as SPARC and PowerPC, though it cannot output programs usable by those machines.

NASM uses variation of Intel assembly syntax instead of AT&T syntax.[6] It also avoids features such as automatic generation of segment overrides (and the related ASSUME directive) used by MASM and compatible assemblers.[5]

Full article ▸

related documents
Java remote method invocation
Wavelet compression
Wikipedia:Federal Standard 1037C terms/telecommunications encryption terms
GNUstep
Scanline rendering
Applet
Automatic data processing
Application programming interface
Alternating bit protocol
Pseudorandom noise
Cacti (software)
Gnumeric
Data stream
ANSI C
Challenge-handshake authentication protocol
Pico (text editor)
Instruction register
Rock Ridge
Grid network
UMSDOS
Terabyte
Sinclair Scientific
A20 handler
Longitudinal redundancy check
Type code
ABC (programming language)
Acme (text editor)
Differential Manchester encoding
OS/390
Random access