Netwide Assembler (NASM) はインテルx86を対象としたフリーソフトウェアのアセンブラであり、16ビット、32ビット (IA-32)、64ビットすべてのコード生成に対応している。
NASMは当初、Julian HallとSimon Tathamが作成していたが、現在はH. Peter Anvinを中心とした少人数のチームによって開発されている。また、当初は独自のライセンスによって公開されていたが、後にBSDライセンスに変更している。
NASMはCOFF、a.out形式、ELF、ネイティブMINIX形式など様々な種類の形式の出力に対応している。フラットな単なる機械語のファイルも出力でき、ブートローダやROMイメージ、オペレーティングシステム開発などに用いることもできる。またNASMは独自の形式としてRDOFFを定めている。これは単純かつ実用的であるよう設計され、クロスアセンブルにも適するという特徴を持っている。なお、SPARCやPowerPCなどx86以外でNASMを実行することもできる。その場合、当然そのコンピュータではNASMの出力したプログラムを実行できない。
NASMの哲学は、プログラマが簡単に理解できるインテルアセンブリ言語として親しまれるようにするということである。そのため従来のインテル構文を採用し(GNUアセンブラ (GAS)ではAT&T構文を採用)、MASMやその互換アセンブラに存在するセグメントオーバーライドプレフィックスの自動生成(ASSUME擬似命令など)は搭載していない。
関連項目
外部リンク