Hi :)

I've been strugling lately in choosing between nasm or fasm; because i wanted an assembler that supports both linux and windows.  They both have there pros and cons. Im wondering if i were to start learning nasm first, and notice if its not what im looking for; would it be easy to switch to fasm?  i mean because of the different syntax in both assemblers.  would that mean i need to learn everything from the beginning for the flat assembler, vice versa.  Unless someone has a good opinion on which assembler to stick with.
Posted on 2006-10-08 23:40:55 by Macleon
Most people started with MASM and some later moved on to another assembler, I moved on to GoAsm though I did try FASM for a short time. Though the syntax is close the change from one assembler to another can be both easy and frustrating. With such a similarity in syntax MASM to GoAsm was a fairly simple switch but I ran into frustrations when trying to use some structures and libraries, Jeremy later added support for both libs and unions solving the problems for me. The lesson I learned in my switch was that almost everything I learned was applicable to the new assembler, it is the system you learn not the syntax, that's what help files are for.
Posted on 2006-10-08 23:59:38 by donkey
The x86 instruction set is the same no matter what (standard) assembler you're using, so that information is directly appliccable. Your OS APIs will be the same as well (unless you're switching assembler *and* operating system at the same time, of course :)).

NASM and FASM are pretty similar in syntax, as long as you just use base features. Macros are pretty different from assembler to assembler, though.

NASM hasn't seen that much development as of late, while FASM still being actively developed on. NASM is "tried and tested", but FASM is pretty mature by now. As I see it, just about the only advantage NASM has over FASM is that you can use it on non-x86 machines, where FASM (because it's written in assembly) requires a x86 cpu.
Posted on 2006-10-09 05:52:14 by f0dder