randyhyde@earthlink.net
2006-06-26 19:22:24 UTC
I don't know the exact status of the NASM development team, but NASM
has been languishing in need of a rewrite for many years now (to get to
the fabled "v1.0" state)
Their todo list isn't that big, but I dunno how complex it would be tohas been languishing in need of a rewrite for many years now (to get to
the fabled "v1.0" state)
implement. Most programs never reach the 1.0 "finished" stage anyways
(open source or otherwise). Not saying that's ideal, but realistically,
people lose interest when it gets to be too much work.
I know some people (still?) use MASM, and there's a few forums for it,
but I somewhat doubt it's the most popular assembler. It seems to only
enjoy most of its use in the Windows sector.
Based on what I've seen, it is (by an order of magnitude) the mostbut I somewhat doubt it's the most popular assembler. It seems to only
enjoy most of its use in the Windows sector.
popular assembler out there. MASM is the 800-pound gorilla, NASM is
the 80-pound gorilla, and everybody else is in the pounds or even
ounces region. As an evangelist for HLA, I talk to a lot of beginning
programmers and the vast majority of them know of MASM and think that's
the way to go. Outside of Linux, where NASM is quite popular, most
beginners haven't actually heard of NASM until they wander around
someplace like CLAX or ALA. Now maybe it's the case that I just hang
around the wrong people (:-)), but from where I sit, MASM is still king
of the heap. OTOH, it's also clear that this is strictly momentum from
the days when Microsoft sold a commercial version of MASM; MASM's
marketshare, despite the excellent efforts of people like Hutch, is
beginning to decline. But it has a long ways to go before it gets
eclisped. That's not to say that it can't happen -- look what happened
with TASM after Borland effectively abandoned it -- but because of
things like the Iczelion tutorials and the MASM32 project, MASM is
maintaining much of its momentum.
The thing that I see killing MASM is the fact that many hard-core
assembly x86 programmers are switching from Windows to Linux, meaning
that they have to switch to a different assembler (usually NASM or
FASM). I really suspect that Microsoft's direction with Vista (trusted
computing, JIT compilation, and no assembly) is probably going to push
more assembly programmers away from Windows and may be the ultimate
cause of MASM's "death" (or, at least, the thing the breaks its
inertia).
, so even if there isn't active development on the product, it's far from dead.
Many people believe that FASM will become the heir to NASM;
Different designs and goals: NASM supports aout, obj, rdoff, etc. andMany people believe that FASM will become the heir to NASM;
lots of commandline parameters while FASM avoids the cmdline options
almost completely, supports 64-bit instructions, and can produce .EXEs
directly without a linker.
vs. FASM for these reasons. I'm sure there are lots of people doing so,
but the main reasons I see people picking NASM is because it comes with
every Linux distro out there and lots of Linux code (and Windows code,
for that matter) is written with NASM; and, of course, it helps that
there are two or three published books that use NASM (a *very* big
deal). The reason I see people using FASM is because the syntax is
reasonably close to NASM (making it easy to switch), the optimization
capabilities are quite good, the macro facilities are decent, and the
thing is blazing fast. If Julienne actually produces an assembly book
featuring FASM, I suspect that FASM could close the gap between itself
and NASM; the big problem with FASM right now is poor documentation and
nothing in the way of a beginner's tutorial/book.
The macro syntaxes for each are wildly
different (though FASM can emulate a bit of NASM's).
I know you know all this, though (from developing HLA). :-)
Sure. FASM's macro facilities are quite a bit more powerful thandifferent (though FASM can emulate a bit of NASM's).
I know you know all this, though (from developing HLA). :-)
NASM's.
OTOH, also speaking from experience, most people don't really care.
Only a small percentage of the population really writes advanced
macros. A shame, but that's the way it is.
but until FASM gets ported to as many OSes as NASM, I think that will be unlikely.
FASM runs on at least seven different OSes (Linux, Win32, DOS,Unix/libc, MenuetOS, Dex4U, OctaOS), but it'll probably never be quite
as portable as NASM since the latter was written in ANSI C. Still, how
portable does an x86 assembler need to be??
that there are enough programmers of these OSes (outside of curiosity)
to really make a difference in the population of FASM programmers. More
likely, a FASM programmer decides to try out one of the OSes because
FASM supports it, not the other way around.
To me, one of the big draws of NASM is that it supports DOS (sort of),
Windows, Linux, FreeBSD, OpenBSD, MacOS, NetBSD, QNX, Solaris, SkyOS,
BeOS, and a few other first or second-tier OSes. Of all the features
various assemblers out there support, this is the one thing that I'm
jealous of (i.e., I wish HLA were as portable) and the thing that I'm
striving for (indeed, the port to FreeBSD is my current project).
Maybe I'm weird, and no one else cares about this portability, but the
ability to carry my assembly code around from OS to OS seems like a
really great idea.
Yes, it is a bummer that development on NASM isn't as active as many
users would like. The macros could use a bit of improvement and there
are a probably a few bugs here and there that could be squashed. But by
and large NASM has been remarkably stable for the past couple of years,
and that counts for something.
I can't blame 'em, really, it's complicated. But, it is a bit sillyusers would like. The macros could use a bit of improvement and there
are a probably a few bugs here and there that could be squashed. But by
and large NASM has been remarkably stable for the past couple of years,
and that counts for something.
that the website is broken. :-/
maintaining a product over a decade; if you're not getting any benefit
from that work (i.e., getting paid), it's hard to keep it up.
Cheers,
Randy Hyde
Long live NASM! :-)Randy Hyde
momentum. It will live for quite some time even if another line of code
is written inside the compiler.
Cheers,
Randy Hyde