flat assembler
Message board for the users of flat assembler.
 Home   FAQ   Search   Register 
 Profile   Log in to check your private messages   Log in 
flat assembler > Main > Best x86 Assembler (excluding FASM)

Goto page 1, 2  Next

Best x86 Assembler
NASM
17%
 17%  [ 9 ]
YASM
7%
 7%  [ 4 ]
Lazy (LZASM)
0%
 0%  [ 0 ]
NewBasic (NBASM32)
0%
 0%  [ 0 ]
HLA
5%
 5%  [ 3 ]
MASM
21%
 21%  [ 11 ]
POASM
0%
 0%  [ 0 ]
RosASM
0%
 0%  [ 0 ]
TASM
25%
 25%  [ 13 ]
OPTASM
0%
 0%  [ 0 ]
TMA
0%
 0%  [ 0 ]
A86/A386
3%
 3%  [ 2 ]
GAS (GNU)
1%
 1%  [ 1 ]
Octasm
1%
 1%  [ 1 ]
GoASM
5%
 5%  [ 3 ]
Arrowsoft
0%
 0%  [ 0 ]
Wolfware (WASM.COM)
0%
 0%  [ 0 ]
OpenWatcom (WASM.EXE)
0%
 0%  [ 0 ]
Pass32
0%
 0%  [ 0 ]
can't decide, there are too many good ones!
7%
 7%  [ 4 ]
Total Votes : 51

Author
Thread Post new topic Reply to topic
rugxulo



Joined: 09 Aug 2005
Posts: 1953
Location: Usono (aka, USA)
Best x86 Assembler (excluding FASM)
Okay, since vid is doing a comparison of assemblers (plus for my own curiosity), which assembler do you think is the best for your personal needs (besides FASM, of course)? Please state why (e.g., multi-OS, fast, small, supports xyz opcodes, output formats, debugging info, macros, open source, etc.) after you vote.
Post 22 Nov 2006, 03:13
View user's profile Send private message Visit poster's website Reply with quote
coconut



Joined: 02 Apr 2004
Posts: 326
Location: usa
i liked goasm before i found fasm, small and clean
Post 22 Nov 2006, 03:41
View user's profile Send private message Reply with quote
smiddy



Joined: 31 Oct 2004
Posts: 546
I haven't used anything other than MASM and TASM, between those two I would go with MASM due to the amount of coding I've done with it and nothing more. FASM is my overall choice!
Post 22 Nov 2006, 11:38
View user's profile Send private message Reply with quote
OzzY



Joined: 19 Sep 2003
Posts: 1029
Location: Everywhere
GoASM is pretty cool, it has a clean syntax. And also the fact that the linker uses *.DLL directly without *.LIB stuff as MASM does.
Post 23 Nov 2006, 12:06
View user's profile Send private message Reply with quote
tom tobias



Joined: 09 Sep 2003
Posts: 1320
Location: usa
tasm 4.0 is the only assembler I have used in the past twenty years. VAX assembler was superior, to my way of thinking, only because the cpu architecture was so much "better" than the muddled Intel nonsense: Segments....Protected mode....dedicated arithmetic registers...
Unbelievable. Confused
Post 23 Nov 2006, 12:24
View user's profile Send private message Reply with quote
smiddy



Joined: 31 Oct 2004
Posts: 546

tom tobias wrote:
tasm 4.0 is the only assembler I have used in the past twenty years. VAX assembler was superior, to my way of thinking, only because the cpu architecture was so much "better" than the muddled Intel nonsense: Segments....Protected mode....dedicated arithmetic registers...
Unbelievable. Confused



Did you like VAX/VMS? I suppose in its time it was the poop, but man looking back on it I can only think what a POS! Of course, FORTRAN was the compiler of choice there. Wink
Post 23 Nov 2006, 12:49
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7111
Location: Slovakia
without any doubt, it's YASM.

Has support for everything important, clean syntax (NASM-like), project is pretty alive, modular (more than FASM).
Post 23 Nov 2006, 14:26
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Kain



Joined: 26 Oct 2003
Posts: 108
HLA since it has everything I consider important.
-portable
-extensive portable library
-powerful macro system
-type checking
Post 23 Nov 2006, 20:20
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7111
Location: Slovakia
Kain:

-portable: every assembler is as portable as HLA
-extensive portable library: you can use HLALib in any assembler, not just HLA. Also there is FASMLIB (which you can use in any assembler too).
- type checking: type checking and assembly don't mix too well IMHO. But it's matter of opinion.

Also note that HLALib probably isn't THAT great. I was wondering how it handles input, and, well... it's not very good way. Doesn't always work. I have notified Randy, but he seems to be offline for some time.
Post 23 Nov 2006, 22:55
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Kain



Joined: 26 Oct 2003
Posts: 108

Quote:
-portable: every assembler is as portable as HLA


I meant portable across OS. Some assemblers are specific to a single OS.


Quote:
-extensive portable library: you can use HLALib in any assembler, not just HLA.
Also there is FASMLIB (which you can use in any assembler too).


Not true. You can only use them with assemblers that support object linking (unless you have a DLL version of FASMLIB).


Quote:
- type checking: type checking and assembly don't mix too well IMHO. But it's matter of opinion.


Types are a form of data representation. I really don't see the problem why "assemblers" shouldn't have user-definable types and type checking, especially since use of such a feature would be totally voluntary. In fact, now that FASM has progressed so much, I consider FASM's lack of inherent type-mechanism to be its weakest link.


Quote:
Also note that HLALib probably isn't THAT great. I was wondering how it handles input, and, well... it's not very good way. Doesn't always work. I have notified Randy, but he seems to be offline for some time.


That's true, it does have some problems. But it's well tested, open source, OS-portable and when I started out a couple years back, the only thing around. I can't stress enough how helpful it has been over the years. Just about every significant program I've written makes use of it.

_________________
:sevag.k
Post 24 Nov 2006, 05:15
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7111
Location: Slovakia

Quote:
I meant portable across OS. Some assemblers are specific to a single OS.


then okay


Quote:
Not true. You can only use them with assemblers that support object linking (unless you have a DLL version of FASMLIB).


no assembler supports object linking. Linkers do Wink
I believe you meant assemblers which support object output (so it can be linked). And yes, i have DLL version.


Quote:
Types are a form of data representation. I really don't see the problem why "assemblers" shouldn't have user-definable types and type checking, especially since use of such a feature would be totally voluntary.

allright, it's your opinion. Type checking often helps, but same often it is annoying. You must "fight it" to do what you want, sometimes it does what you don't want it to, etc.


Quote:
That's true, it does have some problems. But it's well tested, open source, OS-portable and when I started out a couple years back, the only thing around. I can't stress enough how helpful it has been over the years. Just about every significant program I've written makes use of it.


agree, as i say here, it was only serious portable library, at least somewhat native to assembly coders. (Because most asm coders don't like to use libc Wink )
Post 24 Nov 2006, 13:58
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Kain



Joined: 26 Oct 2003
Posts: 108

vid wrote:

allright, it's your opinion. Type checking often helps, but same often it is annoying. You must "fight it" to do what you want, sometimes it does what you don't want it to, etc.



You said that you must "fight it" and I think that is exactly the point of type checking! If you have to fight it, you know exactly what you are doing at that time. If however, you pass a wrong pointer to a routine, it could be a pain to isolate the problem.

My point is that some people (like me) consider it an indispensable feature to have, while others don't think much of it. Since using it is totally voluntary, there is no harm in the assembler supporting it to attract more users.



Quote:
agree, as i say here, it was only serious portable library, at least somewhat native to assembly coders. (Because most asm coders don't like to use libc Wink )



The work you are doing for fasmlib is IMO invaluable to FASM users. That's why I supported your idea from the beginning, but unfortunately have not much spare time to contribute to the project. So you will have to settle for verbal support Smile

It is a good thing because HLAlib can be a pain to use with a compiler other than HLA. I was working on that just today and it is very dirty to set up the exception handler and imports to get the thing working.

_________________
:sevag.k
Post 25 Nov 2006, 03:58
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7111
Location: Slovakia

Quote:
My point is that some people (like me) consider it an indispensable feature to have, while others don't think much of it. Since using it is totally voluntary, there is no harm in the assembler supporting it to attract more users.


there is some harm. syntax of your language becomes more complicated. this introduces another abstraction, with which you must deal somehow. also, it doesn't fit into idea of assembler as symbolic representation of machine code, so it may be even harmful to design.
Post 25 Nov 2006, 09:05
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
sleepsleep



Joined: 05 Oct 2006
Posts: 5134

Quote:
which assembler do you think is the best for your personal needs


i think, i would like the one i build on my own if someday i am smart in future Wink
he he Very Happy
i actually named it already as DOOR operating system and DOOR assembler Laughing Laughing Laughing
the slogan is, "enter the world of information through DOOR OS" Wink
Post 25 Nov 2006, 12:05
View user's profile Send private message Reply with quote
ACP



Joined: 23 Sep 2006
Posts: 150
A86 had a blazing compilation speed in time of AT machines. Also the accompanying D86 debugger was batter than DOS debug. I had very little experience with A386 as other assemblers were evolving faster and had more features. TASM was a great assembler too. On modern OSes I used MASM and NASM a lot.
Post 26 Nov 2006, 19:14
View user's profile Send private message Reply with quote
Goplat



Joined: 15 Sep 2006
Posts: 181
The only assembler I'd used significantly before fasm was tasm. It was very non-intuitive sometimes. A line like "inc word [var]" (missing the "ptr") would silently do the wrong thing; turned out that the keywords "byte", "word", "dword" were just the same as the numbers 1, 2, and 4 respectively - so "word [var]" was like "2 [var]" or "[var+2]". Oops Sad
Post 26 Nov 2006, 20:14
View user's profile Send private message Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7111
Location: Slovakia

Quote:
A line like "inc word [var]" (missing the "ptr") would silently do the wrong thing; turned out that the keywords "byte", "word", "dword" were just the same as the numbers 1, 2, and 4 respectively - so "word [var]" was like "2 [var]" or "[var+2]". Oops


REALLY? terrible.
i hope there isn't such problem in MASM...
Post 27 Nov 2006, 00:27
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
madmatt



Joined: 07 Oct 2003
Posts: 1042
Location: Michigan, USA
The only other assembler I've used besides fasmw is nasm. I think I tried a386 for a little while, barely remember it though. Also didn't like the fact that you had to pay to get the "full" version of the a386 assembler. Never really got into masm, or any other x86 assembler.
Non x86 assemblers: LADS 6502 assembler, A68k (680x0) Amiga assembler, fantasm Apple Macintosh (680x0) assembler.

[edit] whoops! Embarassed I ment NASM.


Last edited by madmatt on 30 Nov 2006, 07:25; edited 1 time in total
Post 27 Nov 2006, 09:41
View user's profile Send private message Visit poster's website MSN Messenger Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 1953
Location: Usono (aka, USA)
Personally, I was always peeved that a lot of .ASM source I found online was TASM syntax. I mean, if free assemblers exist, why use a non-free one when distributing source? And yet, people whined and whined about how "great" TASM was (which I don't necessarily agree). Still, I felt left out since I wasn't knowledgeable enough to translate it to something more sensible (darn structs, macros, etc ... who needs 'em!). At least nowadays we have LZASM, which supports Ideal mode pretty well.

ArrowASM was the first fairly decent MASM-style free one I found (quite a lot of old MASM code out there). However, NASM was the first open source one that I was really drawn to (big delay between 0.97 and 0.98 releases, though, much longer than e.g., 0.95 and 0.96). TMA was cool too (GPL, self assembling) back in the day ('98 or so) when it was still updated (heh, last I heard, the author said, "Too buggy, use NASM instead!"). A386/D386 are okay (fast, small, powerful, good docs), but there are definitely better (free, too) DOS debugging choices these days (e.g., NASM + GRDB, WASM.EXE + WD.EXE, Pass32 + ProDB, etc.). Pass32 is quite good too (targets 16-bit real mode or 32-bit pmode). However, most of these are quite outdated/limited compared to FASM (though YASM rocks and keeps getting better: Caveat Privalov).

In my opinion, FASM and NASM share three vital strengths:

  • support multiple output formats
  • decent documentation
  • run on multiple OSes


Oh, and being free and open source doesn't hurt either. Wink
Post 30 Nov 2006, 06:29
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7111
Location: Slovakia
AFAIK, YASM is already superior to NASM in all aspect (except fame, which it would deserve).

But still, it doesn't have the right "feel" you need when doing assembly. It might be great for C project where you need very optimized routine, but i can't imagine people putting together some hacks in it (altough it is capable of doing this)
Post 30 Nov 2006, 08:07
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< 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


Powered by phpBB © 2001-2005 phpBB Group.

Main index   Download   Documentation   Examples   Message board
Copyright © 2004-2013, Tomasz Grysztar.