Open Source Assembler
By admin on Jan 14, 2010 in open source
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.
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 togcc
, 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.
ker2x | Jan 15, 2010 | Reply
Don’t forget FASM (flat-assembler), up to date, multi-format (linux, bsd, dos, win,…), free, …