GNU Info

Info Node: (nasm.info)Section 1.1.1

(nasm.info)Section 1.1.1


Next: Section 1.1.2 Prev: Section 1.1 Up: Section 1.1
Enter node , (file) or (file)node

1.1.1. 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 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 Minix- and Linux-specific, 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.


automatically generated by info2www version 1.2.2.9