Linux Assembly HOWTO
Prev | Chapter 3. Assemblers | Next

# 3.3. NASM

The Netwide Assembler project provides cool i386 assembler, written in C, that should be modular enough to eventually support all known syntaxes and object formats.

## 3.3.1. Where to find NASM

http://nasm.sourceforge.net, http://sourceforge.net/projects/nasm/

Binary release on your usual metalab mirror in `devel/lang/asm/` directory. Should also be available as `.rpm` or `.deb` in your usual Linux distribution.

## 3.3.2. What it does

The syntax is Intel-style. Comprehensive macroprocessing support is integrated.

Supported object file formats are `bin`, `aout`, `coff`, `elf`, `as86`, `obj` (DOS), `win32`, `rdf` (their own format).

NASM can be used as a backend for the free LCC compiler (support files included).

Unless you're using BCC as a 16-bit compiler (which is out of scope of this 32-bit HOWTO), you should definitely use NASM instead of say AS86 or MASM, because it runs on all platforms.

| NASM comes with a disassembler, NDISASM.

Its hand-written parser makes it much faster than GAS, though of course, it doesn't support three bazillion different architectures. If you like Intel-style syntax, as opposed to GAS syntax, then it should be the assembler of choice...

Note: There are few programs which may help you to convert source code between AT&T and Intel assembler syntaxes; some of the are capable of performing conversion in both directions.

Prev | Home | Next
GAS | Up | Other Assemblers