In my wayward youth, I learned a little bit of inline assembler in Turbo C. And that was fun. Then I got into DJGPP which came with GCC and Bell Syntax. And it was confusing. And I gave up.

Fast forward 12 years. I'm 30, finishing a bachelor's in CS. I've had two classes in MIPS Assembly. I self-taught myself PIC assembler. And I'm willing to give Intel assembler a second chance. And I'm interested in both Windows and Linux assembler.

Which ASM do I learn?

NASM seems the most user-friendly and familiar. It compiles just fine with my GCC programs. And it's cross-platform. I really want that.
GAS uses Bell Syntax. I've heard that once you go Bell, you never go back. Once you get over the learning curve, you love it. At least, that's what I've been told. And it's cross-platform.
MASM comes with lots of fun macros. It seems like one I can get a job with. Not cross-platform.
FASM is something I've heard good things of, but really know nothing about.

Help me out, DaniWeb. Where do I go?

Can only speak for myself, but I would go for MASM.
Spent quite some time programming 8086-processor (at school) but haven't used it ever since. I sure remember it was not hard to learn at all. For some basic programs, I followed a course of a few weeks, and I was ready to go. Of course the negative side is that it's nog cross-platform, what may make NASM a better alternative. Don't have any experience with that, so I don't know the benefits/difficulties of that ASM.

Well, if you like MASM take a look at JWASM. It is fully MASM compatable (Meaning if you have an app written in MASM, JWASM will Assemble it without many complaints) Plus, it is 64bit compatible AND cross-platform

Well, if you like MASM take a look at JWASM. It is fully MASM compatable (Meaning if you have an app written in MASM, JWASM will Assemble it without many complaints) Plus, it is 64bit compatible AND cross-platform

Never heard of it, but I'll check it out, thanks for the tip :)

Thanks for the responses guys. I'm going to try to learn both JWASM and GNU Assembler.

This question has already been answered. Start a new discussion instead.