Best x86 Assembler |
NASM |
|
17% |
[ 9 ] |
YASM |
|
7% |
[ 4 ] |
Lazy (LZASM) |
|
0% |
[ 0 ] |
NewBasic (NBASM32) |
|
0% |
[ 0 ] |
HLA |
|
5% |
[ 3 ] |
MASM |
|
21% |
[ 11 ] |
POASM |
|
0% |
[ 0 ] |
RosASM |
|
0% |
[ 0 ] |
TASM |
|
25% |
[ 13 ] |
OPTASM |
|
0% |
[ 0 ] |
TMA |
|
0% |
[ 0 ] |
A86/A386 |
|
3% |
[ 2 ] |
GAS (GNU) |
|
1% |
[ 1 ] |
Octasm |
|
1% |
[ 1 ] |
GoASM |
|
5% |
[ 3 ] |
Arrowsoft |
|
0% |
[ 0 ] |
Wolfware (WASM.COM) |
|
0% |
[ 0 ] |
OpenWatcom (WASM.EXE) |
|
0% |
[ 0 ] |
Pass32 |
|
0% |
[ 0 ] |
can't decide, there are too many good ones! |
|
7% |
[ 4 ] |
|
Total Votes : 51 |
|
|
Author |
Thread |
|
|
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.
|
22 Nov 2006, 03:13 |
|
coconut
Joined: 02 Apr 2004
Posts: 326
Location: usa
|
i liked goasm before i found fasm, small and clean
|
22 Nov 2006, 03:41 |
|
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!
|
22 Nov 2006, 11:38 |
|
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.
|
23 Nov 2006, 12:06 |
|
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.
|
23 Nov 2006, 12:24 |
|
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.
|
|
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.
|
23 Nov 2006, 12:49 |
|
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).
|
23 Nov 2006, 14:26 |
|
Kain
Joined: 26 Oct 2003
Posts: 108
|
HLA since it has everything I consider important.
-portable
-extensive portable library
-powerful macro system
-type checking
|
23 Nov 2006, 20:20 |
|
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.
|
23 Nov 2006, 22:55 |
|
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
|
24 Nov 2006, 05:15 |
|
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
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 )
|
24 Nov 2006, 13:58 |
|
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 )
|
|
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
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
|
25 Nov 2006, 03:58 |
|
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.
|
25 Nov 2006, 09:05 |
|
|
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
he he
i actually named it already as DOOR operating system and DOOR assembler
the slogan is, "enter the world of information through DOOR OS"
|
25 Nov 2006, 12:05 |
|
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.
|
26 Nov 2006, 19:14 |
|
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
|
26 Nov 2006, 20:14 |
|
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...
|
27 Nov 2006, 00:27 |
|
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! I ment NASM.
Last edited by madmatt on 30 Nov 2006, 07:25; edited 1 time in total
|
27 Nov 2006, 09:41 |
|
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.
|
30 Nov 2006, 06:29 |
|
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)
|
30 Nov 2006, 08:07 |
|
|
|
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.
|