I am a beginner in learning assembly language.
I wanted to know which assembler would be best to use between NASM and MASM in today's context.
Also, can you give a link to documentation on these assemblers?And tutorial specific for these assembler (as assembly is not standardized)

Recommended Answers

All 3 Replies


Clear subjective answer: NASM is the best.
Why? MASM is a Microsoft product. I've never worked with it but I can imagine that you have to stick to MS Windows.
I personally started with NASM. I still love it. The syntax is very strict and therefore clear. Once learnt you have a very good knowledge of assembler. Website and docs are under http://www.nasm.us/.
You can also look for (G)AS as (http://www.gnu.org/software/binutils/) it's AT&T-syntax. Check which you prefer.

For tutorials look out the net. There are plenty. And maybe consider buying a book. And don't bother asking here, of course =).

You'd be right about that, MASM is an x86 assembler mainly used
with MS-Windows and MS-DOS. It is apart of Visual Studio and was
included with Microsoft C/C++ for DOS. MASM-32 these days is
used for making Windows applications in assembler. At least, that's
all I've used MASM-32 for. Under MS-DOS Microsoft Macro Assembler
can be useful to overcome NASM's personal problem with multiple
ORG directives, being that I've only used this in a special case,
such as a .COM that splits itself into two in memory, I primarily
use the Netwide Assembler myself.
NASM provides High-Level language constructs, including macros,
structures, procedures, expressions...
And it accepts C syntax for hexadecimal values, 0xFFFF, which
is a plus.

If you know of any free ebooks(as i do not want to invest much) or sites that teach assembly using the syntax used in NASM..pls give link, It would be very helpful to me. Also, Thank u both for enlightening me!

Be a part of the DaniWeb community

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