Message board for the users of flat assembler.
> Main > Comparison of assemblers
Goto page 1, 2, 3, 4, 5 Next
vid 02 Oct 2006, 20:15
At the meeting, we agreed there is no objective comparison of assemblers. There was one from Randall Hyde many years ago, it even still has very high google ranks. But there is none up-to-date.
So every of you could add your little part to this... some facts about assemblers you have experience with. Or add some assemblers i forgot.
List of assemblers: More can be added soon by others
List of criteria placed in document yet:
- developed since
- whether/how development is active
- dedicated forums
- under which platforms assembler runs
- supported instruction sets
- output formats
- debugging formats / debug info / listing
Planned criteria for soon addition:
- IDE support
Please post here to fill in any missing information. You can also post any info releated to topic, for future
Last edited by vid on 15 Nov 2006, 13:58; edited 16 times in total
|02 Oct 2006, 20:15||
vid 02 Oct 2006, 21:06
okay, let's start about MASM optimizing... i bet MASM is not optimizing size of jumps, or at least fails to do it often (FASM fails seldom). This very basic example produced short jumps in FASM, but not in MASM:
@@: jmp @f db 124 dup(?) jmp @b @@:
(still, someone try it, i am not sure if mazegen compiled it right way with some optimizng command line switches, if they are there)
|02 Oct 2006, 21:06||
Betov 03 Oct 2006, 17:58
Tom, the jumps sizes otimization is nothing but a _size_ optimization. Is has no effect, as far as i could know, on the speed. One classical example on why it may have some importance, is when nested inside a LOOP, or with a JECXZ...
|03 Oct 2006, 17:58||
rugxulo 04 Oct 2006, 05:20
I wrote a silly little 8 kb DOS util (still not quite finished but close enough) that assembles under 14 assemblers (automatically, via sed/batch). I have been cobbling together some notes about them. There are many, many other assemblers, though, and most of the others didn't please me (and some of the ones that worked hardly did).
Here's a few (mostly DOS) that you forgot:
Others include FASM (well, duh), CHASM, JAS (partial NASM rewrite), AASM, ANASM, DJASM, BLASM, Codex, Mingo, BCC/Dev86's AS86, Context/DOS's ASM8086, SASM, MagicASM, WeirdASM, GASM (Gareth), GASM (Jim Gage), GNU as, Alfred Arnold's AS, RosASM, GoASM, PoASM, SmallASM (from Small C), etc. (I'm sure I've ignored a few here besides obvious commercial ones like MASM, TASM, Optasm, A86/A386, ASM86, etc., weird x86/68000 hybrids like XFire, GEMA, Daniela, or Forth-ish ones like osimplay ... and don't forget compiler things like HLA and Terse). I have most of the above (excepting most Win32, commercial, or hybrids), but a few I haven't used much (if at all!).
Last edited by rugxulo on 14 Jun 2008, 04:31; edited 63 times in total
|04 Oct 2006, 05:20||
Octavio 04 Oct 2006, 07:44
Well here is some marketing about Octasm in a Fasm board
There is version for Dos but here i talk about Octa OS version.
multipass assembler with jmp optimization
- speed of compilation
on PIII 930mhz
about 600000 instructions per second + time needed to read sources
- clearness of syntax
It can not be more clear
- power of syntax
eficient syntax for most used instructions:
suports math expressions with float numbers too.
code blocks don't need to be in order
- quality of sources of assembler
very good ,i wrote it.
- how much is assembler embeddable (eg if it can be used in other projects)
flat 32 bit code ,should not be dificult to port
low memory requeriments.
a few lines
- internals documentation
a fewer lines
- support by original author(s)
- activity on dedicated forums
no dedicated forum
- articles on it or using it
this article counts?
- usable apps written with it
Octa OS aplications ,see my web
- libraries for coding with it
Octa OS libraries
- editors for coding with it
Octa OS editor or any txt editor
- support for platforms, processors, formats, debug info formats
can read txt and elf formats,outputs binaries and symbol file.
- bugfulness, updates, bugfixes
some bugs,if you let me time i will correct them.
|04 Oct 2006, 07:44||
revolution 04 Oct 2006, 10:42
Well, sorry to be pedantic, but there a flaw in your statement. The chip mentioned is the Harris 80c286, the clock is 2MHz and the current is <2mA during sleep and ~4mA during run. This board was build in 1993. I hope this clears up any misconception that some may get from reading your post.
tom tobias wrote:
This product, the Intel (=AMD) cpu, is NOT USEFUL as an embedded device, because it requires too much current.
|04 Oct 2006, 10:42||
MazeGen 05 Oct 2006, 12:01
Back to topic: I once tried MASM -- it's quite readable, can't complain. But it has that damn license, and I understand because it's Microsoft...
VC++ toolkit (which contains MASM) is for free and its license is very liberal.
Last edited by MazeGen on 05 Oct 2006, 12:29; edited 1 time in total
|05 Oct 2006, 12:01||
Borsuc 05 Oct 2006, 12:37
Well, it wasn't when I was using MASM sorry for confusion
VC++ toolkit (which contains MASM) is for free and its license is very liberal.
|05 Oct 2006, 12:37||
arafel 05 Oct 2006, 14:45
What are the restrictions of VC++ toolkit license?
I know masm from Hutch's package can't be used for commercial purposes, or for OSes other than Windows (not sure about the os restriction though..).
Does this applies to VC++ toolkit too?
|05 Oct 2006, 14:45||
MazeGen 05 Oct 2006, 17:46
Sorry for the confusion, guys. The toolkit really doesn't contain MASM
So the only way I know how to get MASM legally for free is download WinDDK or PSDK, but I'm not sure about their EULA.
Again sorry. I shouldn't be so prompt when I'm sick.
|05 Oct 2006, 17:46||
rugxulo 07 Oct 2006, 23:14
tom tobias wrote:
You want a breakdown of similar sections of my favorite assemblers' source code (NASM vs. YASM vs. OpenWatcom WASM? or FASM vs. TMA vs. Wolfware vs. Octasm?), e.g., regarding parsing a line for valid tokens (labels, mnemonics, operands, comments)? Honestly, I'm not really qualified to compare any of them (having never written my own assembler).
|07 Oct 2006, 23:14||
MazeGen 09 Oct 2006, 07:23
|09 Oct 2006, 07:23||
rugxulo 12 Oct 2006, 00:26
Well, I can agree that Octasm is pretty well written, has mostly low memory requirements, is fast, and is under active development. It does require a 386DX or better, though (i.e., 32-bit and needs a FPU).
Unique features? Well, anonymous labels, multiple instructions on one line, multiline comments (begin/end with ;;), slightly different macro and (local) label handling, but it also can run instructions from the cmdline.
The DOS version is able to use all memory except under EMM386 (v86 mode), so in that case, it defaults to 64k (less actually). My tiny DOS .COM (about 8,200 bytes uncompressed) won't assemble under EMM386 unless I rename (via sed/.BAT) all labels to shorter equivalents (TINYLBL.BAT -> #print_bgcolor_ret becomes #az100, etc.). So, it's not crippling, either clean boot (no mem. managers), use TINYLBL.BAT, or try OctaOS.
The latest DOS version is 0.15 (Apr. 25, 2005), about a year and a half old. (OctaOS uses a newer version, 0.151, plus a few fixes). A new version (v0.2) is reportedly in the works. (Octavio is very diligent!).
I dunno about license, he never mentioned it. But, Octasm does assemble itself, so I guess it ain't too strict!
|12 Oct 2006, 00:26||
rugxulo 12 Oct 2006, 01:23
GAS now supports Intel syntax (e.g., gcc -masm=intel -S myfile.c -o myfile.s), but I never use it by itself. In fact, there are only a few reasons I can think of for using it at all (BTW, gotta love phpBB, hehe):
|12 Oct 2006, 01:23||
arafel 12 Oct 2006, 05:07
You can also specify Intel syntax from within gnu as source with '.intel_syntax' directive.
GAS without the C preprocessor is not much usable, since it lacks some very basic programming necessities. and also has quite different syntax from other assemblers which makes it hard to adapt to.
anyway it's a pain to code in pure gas without using some helpers like C preprocessor.
|12 Oct 2006, 05:07||
arafel 12 Oct 2006, 12:17
[GAS lacks] Transparent handling of nested structures for example.
Also I heard others complaining about macros support being limited in some ways. Although I never worked with gas macros, so can't say much about this.
|12 Oct 2006, 12:17||
rugxulo 16 Oct 2006, 21:45
FASM is not the only assembler to assemble itself: TMA, Octasm, Intasm, Ngasm, A86, XASM, WolfWare, Rosasm, etc.
Last edited by rugxulo on 18 Oct 2006, 00:04; edited 1 time in total
|16 Oct 2006, 21:45||
rugxulo 18 Oct 2006, 00:09
All the ones I mentioned (besides Ngasm and A86/A386) come with source and are free (no cost).
Octasm supports MMX, SSE3, and 3dNow! (according to the Programmer's Heaven description page for the download). A386 only supports through the P3. Rosasm supposedly supports at least SSE3 (I'm too lazy to further search their forum, but surely a Win32 assembler such as itself supports newer instructions).
|18 Oct 2006, 00:09||
Kain 18 Oct 2006, 20:31
Well, here's a preliminary HLA description.
-flexible, embedding as easy as setting up a couple environment variables
-High/low level syntax by user preference. [operand ordering similar to AS]
-dedicated Assembly book
-active support by original author
-dedicated open-source IDE
-dedicated portable standard library with hundreds of functions
-ability to generate source in various formats FASM, MASM, AS, TASM.
-very powerful macro system
-by default, embeds exception handling code that catches many errors
-built in and user definable types allows for solid coding foundation
-built in OOP support
-supports x/86 32 bit only
-moderate forum activity
-source code in C, Flex/Bison
-slow compilation speed
-needs a backend low level assembler, but it has optimizing potential of backend.
-internals documentation in form of comments in source code
|18 Oct 2006, 20:31||
rugxulo 20 Oct 2006, 03:07
Here's a list of assembler authors (mostly DOS-based, but most are unsupported, bold means still actively developed or updated within the last three years or so, which IMO probably means "still actively developed"):
(Do these count??):
HLA - Randall Hyde
Terse - Jim Neil
Last edited by rugxulo on 07 Jan 2007, 05:22; edited 1 time in total
|20 Oct 2006, 03:07||
|Goto page 1, 2, 3, 4, 5 Next
< Last Thread | Next Thread >
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.