# Netwide Assembler

> assembler and disassembler for the Intel x86 architecture

**Wikidata**: [Q1571077](https://www.wikidata.org/wiki/Q1571077)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Netwide_Assembler)  
**Source**: https://4ort.xyz/entity/netwide-assembler

## Summary  
The Netwide Assembler (NASM) is an assembler and disassembler for the Intel x86 architecture, primarily used to convert assembly language into machine code. It is a cross-platform tool supporting multiple operating systems, including Windows, Linux, and DOS. NASM is known for its portability, modularity, and support for various output formats.

## Key Facts  
- **Inception**: Created in 1996 by Hans Peter Anvin.  
- **License**: Currently under the 2-clause BSD License (since 2009); previously used the GNU Lesser General Public License.  
- **Latest Version**: 2.15.02 (released July 2, 2020).  
- **Platforms**: Runs on Linux, Windows, DOS, BSD, Classic Mac OS, and KolibriOS.  
- **Developer**: Maintained by Hans Peter Anvin and the open-source community.  
- **Source Code**: Hosted on GitHub ([github.com/netwide-assembler/nasm](https://github.com/netwide-assembler/nasm)).  
- **Website**: Official site at [nasm.us](https://www.nasm.us).  
- **Implementation**: Supports x86 assembly language.  

## FAQs  
### Q: What is NASM used for?  
A: NASM is used to write and compile assembly language programs for Intel x86 architecture, converting human-readable code into machine-executable binaries.  

### Q: Is NASM free to use?  
A: Yes, NASM is free and open-source software, currently distributed under the 2-clause BSD License.  

### Q: Which operating systems support NASM?  
A: NASM is cross-platform and runs on Linux, Windows, DOS, BSD, Classic Mac OS, and KolibriOS.  

## Why It Matters  
NASM is a critical tool for low-level programming, enabling developers to write highly optimized code for performance-critical applications like operating systems, device drivers, and embedded systems. Its modular design and support for multiple output formats make it versatile for both educational and professional use. NASM's open-source nature ensures continuous community-driven improvements, keeping it relevant in modern software development. Its adoption in projects like KolibriOS highlights its reliability and efficiency in assembly programming.  

## Notable For  
- **Portability**: Works across multiple operating systems, including niche platforms like KolibriOS.  
- **License Flexibility**: Transitioned from LGPL to the more permissive 2-clause BSD License.  
- **Active Development**: Maintained for over two decades, with regular updates.  
- **Community Support**: Widely used in academia and industry for assembly language education and development.  

## Body  
### Development History  
- **1996**: NASM created by Hans Peter Anvin.  
- **2009**: License changed from LGPL to 2-clause BSD.  
- **2020**: Development moved to GitHub ([source](https://lists.nasm.us/archives/nasm-devel/2020-June/000003.html)).  

### Technical Specifications  
- **Output Formats**: Supports binary, COFF, ELF, Mach-O, and others.  
- **Version Highlights**:  
  - 2.15.02 (2020): Bug fixes and stability improvements.  
  - 2.13 (2017): Major feature updates.  
- **Dependencies**: Written in assembly and C.  

### Platforms and Distributions  
- **Linux**: Available via apt (Debian), dnf (Fedora), and other package managers.  
- **Windows**: Chocolatey package (`nasm`).  
- **BSD**: Ports available for FreeBSD, OpenBSD, and NetBSD.  

### Community and Resources  
- **Documentation**: Comprehensive manual (`nasm.1`).  
- **Stack Overflow**: Active Q&A under the `nasm` tag.  
- **Source Code**: Migrated from repo.or.cz to GitHub in 2020.

## References

1. [Source](http://www.nasm.us/)
2. [The nasm Open Source Project on Open Hub: Languages Page. Open Hub](https://www.openhub.net/p/nasm/analyses/latest/languages_summary)
3. [Release 2.11.08. 2015](https://github.com/netwide-assembler/nasm/releases/tag/nasm-2.11.08)
4. [Index of /pub/nasm/releasebuilds/2.13](http://www.nasm.us/pub/nasm/releasebuilds/2.13/)
5. [Release 2.13. 2017](https://github.com/netwide-assembler/nasm/releases/tag/nasm-2.13)
6. [Source](http://repo.or.cz/nasm.git/commit/fe2f6de2ee85959747a4e4a99ea43a38509cc3b2)
7. [Release 2.13.02. 2017](https://github.com/netwide-assembler/nasm/releases/tag/nasm-2.13.02)
8. [Source](http://repo.or.cz/nasm.git/tag/refs/tags/nasm-2.13.03)
9. [Release 2.13.03. 2018](https://github.com/netwide-assembler/nasm/releases/tag/nasm-2.13.03)
10. [Source](https://repo.or.cz/nasm.git/tag/a73b8be6f0f9e307e3c6131011a30f2fd5b00877)
11. [Source](https://github.com/netwide-assembler/nasm/releases/tag/nasm-2.14.02)
12. [Source](https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D)
13. [Announcing NASM 2.15. 2020](https://lists.nasm.us/archives/nasm-devel/2020-June/000002.html)
14. [Source](https://repo.or.cz/nasm.git/tag/03231c40a59533ec28f593f5a549688239a3c637)
15. [Source](https://github.com/netwide-assembler/nasm/releases/tag/nasm-2.15)
16. [Source](https://repo.or.cz/nasm.git/tag/6d78c07e6b0d1602ab096eec29628bfa7afb639c)
17. [Source](https://github.com/netwide-assembler/nasm/releases/tag/nasm-2.15.01)
18. [Source](https://nasm.us/doc/nasmdocc.html)
19. [Source](https://github.com/netwide-assembler/nasm/releases/tag/nasm-2.15.02)
20. [Release 0.91. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.91)
21. [Release 0.93. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.93)
22. [Release 0.94. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.94)
23. [Release 0.95. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.95)
24. [Release 0.96. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.96)
25. [Release 0.97. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.97)
26. [Release 0.98e. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98e)
27. [Release 0.98. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98)
28. [Release 0.98.03. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.03)
29. [Release 0.98.08. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.08)
30. [Release 0.98.09. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.09)
31. [Release 0.98.11. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.11)
32. [Release 0.98.12. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.12)
33. [Release 0.98.14. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.14)
34. [Release 0.98.15. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.15)
35. [Release 0.98.16. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.16)
36. [Release 0.98.17. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.17)
37. [Release 0.98.18. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.18)
38. [Release 0.98.19. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.19)
39. [Release 0.98.20. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.20)
40. [Release 0.98.21. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.21)
41. [Release 0.98.22. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.22)
42. [Release 0.98.23. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.23)
43. [Release 0.98.24. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.24)
44. [Release 0.98.25. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.25)
45. [Release 0.98.26. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.26)
46. [Release 0.98.30. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.30)
47. [Release 0.98.31. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.31)
48. [Release 0.98.32. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.32)
49. [Release 0.98.33. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.33)
50. [Release 0.98.34. 2002](https://github.com/netwide-assembler/nasm/releases/tag/nasm-0.98.34)