Programming Tools

This page is still very much under development. When I get bored and have some free time I’ll fill this out all little bit more.

NASM (Network Assembler)

The following two paragraphs where taken from there docs, there well written and should be worth the read if you want to use this assembler.

What Is NASM?

The Netwide Assembler, NASM, is an 80×86 and x86-64 assembler designed for portability and modularity. It supports a range of object file formats, including Linux and *BSD a.out, ELF, COFF, Mach-O, Microsoft 16-bit OBJ, Win32 and Win64. It will also output plain binary files. Its syntax is designed to be simple and easy to understand, similar to Intel’s but less complex. It supports all currently known x86 architectural extensions, and has strong support for macros.

Why Yet Another Assembler?

The Netwide Assembler grew out of an idea on comp.lang.asm.x86 (or possibly alt.lang.asm – I forget which), which was essentially that there didn’t seem to be a good free x86-series assembler around, and that maybe someone ought to write one.

a86 is good, but not free, and in particular you don’t get any 32-bit capability until you pay. It’s DOS only, too.
gas is free, and ports over to DOS and Unix, but it’s not very good, since it’s designed to be a back end to gcc, which always feeds it correct code. So its error checking is minimal. Also, its syntax is horrible, from the point of view of anyone trying to actually write anything in it. Plus you can’t write 16-bit code in it (properly.)
as86 is specific to Minix and Linux, and (my version at least) doesn’t seem to have much (or any) documentation.
MASM isn’t very good, and it’s (was) expensive, and it runs only under DOS.

TASM is better, but still strives for MASM compatibility, which means millions of directives and tons of red tape. And its syntax is essentially MASM’s, with the contradictions and quirks that entails (although it sorts out some of those by means of Ideal mode.) It’s expensive too. And it’s DOS-only.
So here, for your coding pleasure, is NASM. At present it’s still in prototype stage – we don’t promise that it can outperform any of these assemblers. But please, please send us bug reports, fixes, helpful information, and anything else you can get your hands on (and thanks to the many people who’ve done this already! You all know who you are), and we’ll improve it out of all recognition. Again.