flat assembler
Message board for the users of flat assembler.

Index > Main > FASM vs. NASM vs. MASM

Goto page Previous  1, 2
Author
Thread Post new topic Reply to topic
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1180
Location: Unknown
HaHaAnonymous
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 18:29; edited 1 time in total
Post 16 Jan 2014, 13:29
View user's profile Send private message Reply with quote
sid123



Joined: 30 Jul 2013
Posts: 340
Location: Asia, Singapore
sid123
Quote:
I'm not a real programmer then (expected). The only manual I have read was the Intel manual, everything else I learned the "hard-way" (trial and error).

I didn't say that reading manuals is useless, I said that most people can't learn from just reading manuals, they need some 3rd party aid like examples, sources etc. Don't you think so?
That's how every one learns. Manuals are for complex tasks, I think people starting with assembly (x86) should first start from reading tutorials and assembly examples rather than reading the Intel Manual, since tutorials "assume" that you are a beginner, after you've had enough experience with assembly then you should consider Intel Manuals as your learning resource.
I feel there is nothing called a "real" programmer, it just that some people are hobbyist coders, they aren't serious as opposed to people who are professional and write everything on their own.

_________________
"Those who can make you believe in absurdities can make you commit atrocities" -- Voltaire https://github.com/Benderx2/R3X
XD
Post 17 Jan 2014, 06:55
View user's profile Send private message Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1180
Location: Unknown
HaHaAnonymous
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 18:28; edited 1 time in total
Post 17 Jan 2014, 15:07
View user's profile Send private message Reply with quote
system error



Joined: 01 Sep 2013
Posts: 671
system error
On one fine Sunday, long long time ago...

I attempted my first MASM 'hello world' program... until at the end of the code where I got the end main vs endp conflict poisoning both sides of my brain. I never truly recovered since then.
Post 29 Jan 2014, 17:14
View user's profile Send private message Reply with quote
sid123



Joined: 30 Jul 2013
Posts: 340
Location: Asia, Singapore
sid123
Quote:
I attempted my first MASM 'hello world' program... until at the end of the code where I got the end main vs endp conflict poisoning both sides of my brain. I never truly recovered since then.

One thing:
MASM will be dead in a few years, It's high time that those unsophisticated programmers stop using MASM and start with a free assembler like NASM/FASM

_________________
"Those who can make you believe in absurdities can make you commit atrocities" -- Voltaire https://github.com/Benderx2/R3X
XD
Post 30 Jan 2014, 06:55
View user's profile Send private message Reply with quote
sinsi



Joined: 10 Aug 2007
Posts: 693
Location: Adelaide
sinsi
sid123 wrote:
MASM will be dead in a few years

Microsoft still use it for low-level stuff (and drivers)
sid123 wrote:
It's high time that those unsophisticated programmers stop using MASM and start with a free assembler like NASM/FASM

I can't remember much of a choice in 1986, there was MASM and...TASM/A86 maybe?
Post 30 Jan 2014, 07:59
View user's profile Send private message Reply with quote
HaHaAnonymous



Joined: 02 Dec 2012
Posts: 1180
Location: Unknown
HaHaAnonymous
[ Post removed by author. ]


Last edited by HaHaAnonymous on 28 Feb 2015, 18:23; edited 1 time in total
Post 30 Jan 2014, 11:14
View user's profile Send private message Reply with quote
DOS386



Joined: 08 Dec 2006
Posts: 1901
DOS386
upsurt wrote:
Thank you, AsmGuru62! Does NASM need a linker?


No ASM needs a linker. Just FASM can brew MZ and PE while NASM can't. But you can always brew MZ or PE manually. Or you can use a linker with FASM (but not the OMF format).
Post 01 Feb 2014, 08:14
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4237
Location: 2018
edfed
what is a linker???

is that this strange thing that generate binary around binary, and generate LNKXXXX ERRORS if it doesn't find a .lib referenced in a configuration file via a path variable...

if it does it, it is just a symbol offset assembler, than, it is just an aspect of assembler.

if it does that, the source code just need to know where to pick symbols, not to know where the .lib is, cause the .lib is just a crappy file type, not source code, not property file, not anything like readable file, and is just intended to bloat your job when you want to compile a simple application in a multiMegaBytes binary file full of 0's
Post 01 Feb 2014, 14:46
View user's profile Send private message Visit poster's website Reply with quote
PeExecutable



Joined: 26 Jun 2015
Posts: 181
PeExecutable
<popping a very old thread here>

I've used tasm, masm, fasm, nasm and a little bit of yasm and used each of them for a couple of months, a few of them for many years.

Here is what I think of flat assembler so far:

1. Nice and clean, small, extremely fast (according to my tests it outperforms other assemblers by over ten thousand times, which is insane in and of itself)

2. Extremely powerful macro system, but here starts my pessimism. Because the macro system of fasm ships at the very bones, whenever a programmer creates a new macro and shares it on the internet, people won't understand the macro immediately, because there are no standard macro instructions used in a macro designed from the bone, which makes it extremely inefficient to share macros with other people. Here is where I strongly bless NASM, because if you share a macro designed in NASM, chances are very high he'll understand that macro immediately because it's not designed from the bones and up, it has a little bit of skin on it too, initially.

3. Extreme simplifity with the combined assembler and integrated linker, this is something I highly appreciated when I first used FASM, but after a while, I really (REALLY) missed the command line options you find in other assemblers and when I moved away from FASM to a more complex command line assembler, I was happy again, I mean REALLY happy. Simplicity is not always a good thing, believe me and I hope FASM will reconsider this in the future, even a tiny more option on the command line is better than none at all.

4. I was disappointed when I tried to use an interface in fasm from inside a function, I could not allocate an interface inside the local definitions and had to use a global one for the interface. I have probably done something wrong?

5. Naming conventions in fasm tends to favor shorter names than longer more descriptive names. I think FASM can learn from HTML here. Why isn't HTML designed with shorter names to save bandwidth? Because you don't actually save bandwidth and secondly because shorter names is a bad thing to do. Very long names are bad, if you can find such beautiful naming conventions like NASM uses, things like __float32__(0.1) which is perfect in length and has a very stylish name, with the cool underscores.

When you are compiling a piece of source code, you don't save bandwidth by having a name at 10 bytes versus 50 bytes. The operating system have to read 4096 bytes anyway from the disk and most names don't make up even 8% of the size of the source file.

When you ship something with a name that is short, the user have to open the manual and spend 5 minutes to figure out what it is doing. If you give it 2, 3 or 5 more characters, 5 minutes are saved for the programmer.

It's not wise to count on that the programmer will learn to remember the short names, because if the assembler consists of too many of them, and the programmer rarely needs to use them frequently, he will not learn to remember them and so he will constantly be peeking in the manual.

However, if the assembler has very few names, few macro instructions, shorter names can be used because it's easy to remember a few of them.

The people who designed the __floatxx__ naming convention with the two underscores on both sides, those people were absolutely ingenious, they understand that the visual sensory of the programmer can much more easily remember the word floatxx if its between horizontal lines, pictural memory is more effective than the literal memory if combined. Learn from them.

In my understanding, the goal of fasm is to narrow down everything until you can fit everything at the pin of a needle, so that it's easier to take control of your life, whether it be in bed or behind the screen. Try not to walk that path too much, we masters know what we're talking about. Very Happy

You're NOT going to lose a partner if you add some command line options to fasm. My personal wish is that we see more of FASM in the future, not so much FASCISM. This is a wisdom you WILL adapt to later in life, you might as well do it early on, I guarantee that you'll change your mind later. Wink
Post 26 Jun 2015, 18:11
View user's profile Send private message Reply with quote
fasmnewbie



Joined: 01 Mar 2011
Posts: 553
fasmnewbie
"we masters know what we're talking about"

Masters don't rely on C to make their assembly code to work.
Post 26 Jun 2015, 22:31
View user's profile Send private message Visit poster's website Reply with quote
PeExecutable



Joined: 26 Jun 2015
Posts: 181
PeExecutable
It's necessary to have an assembler written in a HLL language to avoid the death of the assembler when the author passes away. It's called 'being smart' and its an investment.

And you don't rely in C, you're thinking about the source code of the assembler, but the assembler executable is already assembly code, and the assembler phase is not cruical.
Post 27 Jun 2015, 03:59
View user's profile Send private message Reply with quote
fasmnewbie



Joined: 01 Mar 2011
Posts: 553
fasmnewbie
Master, judging from your response, I have this funny feeling that you don't know what you are talking about. But hey, I use NASM too you know. In fact there are lots of NASM users in here too due to syntactic compatibility between these two. So I hope you don't simply get offended by threads like this. Come on...
Post 27 Jun 2015, 05:02
View user's profile Send private message Visit poster's website Reply with quote
PeExecutable



Joined: 26 Jun 2015
Posts: 181
PeExecutable
You were the first person to mention offended
Post 27 Jun 2015, 05:28
View user's profile Send private message Reply with quote
fasmnewbie



Joined: 01 Mar 2011
Posts: 553
fasmnewbie
PeExecutable wrote:
You were the first person to mention offended

Friends?
Post 27 Jun 2015, 05:48
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar.

Powered by rwasa.