Netwide Assembler
Original author(s) | Simon Tatham, Julian Hall |
---|---|
Developer(s) | H. Peter Anvin, et al. |
Stable release | 2.07 / July 19, 2009 |
Operating system | Microsoft Windows, Unix-like, OS/2, Mac OS, DOS |
Available in | English |
Type | x86 assembler |
License | 2-clause BSD |
Website | http://www.nasm.us/ |
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.[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]
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] 32-bit programs can be written using NASM in such a way that they are portable to all 32-bit x86 operating systems, if the right libraries are used.[citation needed]
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 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]
Linking
NASM principally outputs object files, which are generally not executable in and of themselves. The only exception to this are flat binaries (e.g., .COM)[5] which are inherently limited in modern use. To translate the object files into executable programs, an appropriate linker must be used, such as the Visual Studio "LINK" utility for Windows or ld for UNIX-like systems.
Development
On 28 November, 2007, version 2.00 was released, adding support for x86-64 extensions.[3] The development versions are not uploaded to SourceForge.net; instead, they are checked in to the project's own Git repository with binary snapshots available from the project web page.
A search engine for NASM docs is also available.[7]
See also
References
- ↑ Ram Narayan. "Linux assemblers: A comparison of GAS and NASM". http://www.ibm.com/developerworks/library/l-gas-nasm.html. "two of the most popular assemblers for Linux, GNU Assembler (GAS) and Netwide Assembler (NASM)"
- ↑ Randall Hyde. "Which Assembler is the Best?". http://webster.cs.ucr.edu/AsmTools/WhichAsm.html. Retrieved 2008-05-18. "In second place, undoubtedly, is the NASM assembler."
- ↑ 3.0 3.1 "The Netwide Assembler". http://nasm.sourceforge.net/. Retrieved 2008-06-27.
- ↑ "NASM Version History". http://www.nasm.us/doc/nasmdocc.html. Retrieved 2009-07-19.
- ↑ 5.0 5.1 5.2 5.3 "NASM Manual". http://alien.dowling.edu/~rohit/nasmdoc0.html. Retrieved 2009-08-15.
- ↑ Randall Hyde. "NASM: The Netwide Assembler". http://webster.cs.ucr.edu/AsmTools/NASM/. Retrieved 2008-06-27.
- ↑ "NASM Doc Search Engine". http://alien.dowling.edu/~rohit/search/srch/search.php. Retrieved 2009-09-14.
Further reading
- Jeff Duntemann (2000). Assembly Language Step by Step. J Wiley and Sons. ISBN 0471375233.
External links
cs:Netwide Assembler de:NASM es:Netwide Assembler fr:Netwide assembler it:NASM (informatica) ka:NASM ja:Netwide Assembler pl:NASM ru:NASM
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...
- Pages where expansion depth is exceeded
- All articles with unsourced statements
- Articles with unsourced statements from June 2008
- Articles with invalid date parameter in template
- Pages with broken file links
- Assemblers
- Free compilers and interpreters
- SourceForge projects
- DOS software
- Linux software
- Windows software