Hi all..These days,i come to see that more code were done with NASM.
Though i had some experience with MASM..i don't understand,why we need this NASM stuff.?

My doubts were...
1.)Is it B'cze there is some Compatibility Issues with MASM.?
2.)Whether NASM is more reliable,more flexible or even had More Functionality?
3.)Whether NASM comes under GNU....(Free Soft)

What's the real Diff B/w MASM and NASM.
Why should we need it Ultimately.....?!!
Posted on 2004-03-28 11:46:40 by zakham
NASM lets you use segment-relative relocations, while MASM doesn't. And in NASM you can enter imports directly without using a DEF file or import library. And you can enter the address for a JMP FAR or CALL FAR directly. I can't think of any other reasons for using NASM right now.
Posted on 2004-03-28 12:03:48 by Sephiroth3
You can get nasm for free, legally, and use it to produce anything you want. If you get MASM for free with on of the DDKs, you will be limited to do either Windows Applications or - more recent licenses - restricted to doing windows drivers. Of course this doesn't apply if you BUY masm, or get it with visual studio.

You ought to use fasm instead of nasm, though - nasm development has sort of died, while fasm is still under development, and is starting to look pretty good.

More advantages... both fasm and nasm support binary output, and can run on more than just windows platforms. Nasm can run on more or less any platform actually, where fasm is limited to x86 and currently "only" supports dos, windows, linux, and menuetos, if I'm not wrong.

Source code is available for both nasm and fasm, so in theory you can add your own features.

Which assembler to choose depends on your needs - masm might be a bit more "beginner-friendly", mostly because most example code is written for masm. Fasm is pretty powerful & promising though, and with various macros it's not really that much different from masm programming. Oh, and fasm is *fast* :)
Posted on 2004-03-28 12:05:08 by f0dder
You ought to use fasm instead of nasm, though - nasm development has sort of died, while fasm is still under development, and is starting to look pretty good.

You might also consider GoAsm, it is also under active development and has some very cool features. It supports all the same libs that you use with MASM, requires no import libs and comes with a complete set of programming tools including a linker and debugger. It supports AMD, SSE and SSE2 instructions as well as integrated branch hints for the PIV. Another tool that comes with the suite is AdaptAsm, that will do some rudimentary conversion of source files from just about any popular assembler to GoAsm. Also you can use it with RadASM along with MASM to make your projects more portable from one to the other. The syntax and program structure is very close to MASM but a little more explicit and it has full unicode support and inline strings built in. Like the others it is free and you can use it to develop non-Windows applications if you want.

Posted on 2004-03-28 12:13:26 by donkey
> Why should we need it Ultimately.....?

Use what you need or what make you feel more comfortable.
I have used MASM and NASM from years ago, and now I only
use NASM by the nature of my actual projects.

I don't believe that NASM will be the future of the assembly
syntax, so that you can stay alive without it. There is a new
project: YASM ( http://www.tortall.net/projects/yasm/ ),
a complete rewrite of the NASM assembler under the "new"
BSD License. I've made some successful tests with it, but
yet is not full compatible with some NASM sources.

You must ask in the NASM sourgeforge forum about the NASM
development state and heard its developers. Try to contact
with Frank Kotler.


You can get usefull info about nasm in:

Posted on 2004-03-29 09:00:36 by n u M I T_o r