I am have been programming in C++ for a few years now. Now I would like to also learn assembly language.

I have tried NASM, but I dont like it, it works better on linux and my main development platform is windows.
I have also tried FASM, its better but I couldnt find good documentation on it.
I dont care for the syntex although I like the Intel syntex more e.g.

mov eax, 4

I want an assembler that is easy to learn, and have good documentation from which I can learn and that I can program bootloaders and other chipset based stuff like writing drivers for security cameras etc.

I am currently developing from an 64 bit cpu, so the assembler should support atleast 32 bit / 64 bit.
My main platform is 64-bit windows 7.


Recommended Answers

All 4 Replies

Long story short; none of them. That's why we have programming languages.

Unfortunately, Moschops is right. Assembly language by its very nature isn't particularly friendly, and x86 assembly specifically is rather gruesome. The best you can really do is get a good IDE such as RadASM, WinAsm, AsmEdit or EasyCode, which lessens the severity of it somewhat. For the sort of work you seem to be doing, AsmEdit is probably the best choice, as the others are all geared toward writing applications rather than low-level systems code.

Mind you, I am presently writing my own x86-64 assembler, but given that a) it would be using a radically different syntax based on Lisp, and b) I am unlikely to ever finish it, I don't think that it is much of an option for you.

just learn asm, I started from emu8086.com

Im learning Assembly through the NASM assembler, and Dr. Paul Carter's book which can be found here. I am personally a fan of it so far, it starts out slow, telling you all the boring stuff, and then in starts to go into how to write the code, and what each instruction does. I definitely would recommend checking it out.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.