flat assembler
Message board for the users of flat assembler.

flat assembler > Main > Which Assembler is better?

Author
Thread Post new topic Reply to topic
bzaretsky



Joined: 10 Sep 2008
Posts: 5
I am new in this. I need to find the easiest to learn and the best assembler people use today. (I know, it might be to much to ask). There are HLA, GoASM, MASM, FASM, TASM, ShMASM. Soooo many, it hurts. I am not a young man to loose my time. I know, I am on MASM forum and the answer might be somewhat bias. But I really need a help to find which road to go.
Post 10 Sep 2008, 15:12
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 15870
Location: 162173 Ryugu
Actually you are on a fasm forum. But I think the best assembler for anyone is the assembler that does what one expects it to do.

For me, of course, that is fasm. For others there are other answers.

So basically there is no simple answer, you need to weigh up various things like price, speed, size, support, simplicity, extendibility, etc.

I suggest you try out all the various assemblers you mentioned and see which one suits your needs best. There is no substitute for an hands-on trial.
Post 10 Sep 2008, 15:21
View user's profile Send private message Visit poster's website Reply with quote
bzaretsky



Joined: 10 Sep 2008
Posts: 5
Thanks a lot. Yes, MASM was a typo.
Again, I am not experienced at all. To do all assembler would need a lot of time to learn and $$ to actually have hands-on experience. I don't have that many years left in my life. I bet that anyone knowng about assembly more than laying stone knows already more than I. That's why I seek for help here.
Post 10 Sep 2008, 17:07
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 15870
Location: 162173 Ryugu
It is hard to judge what advice to give. Your level of knowledge is unknown to me. Do you have the Intel and/or AMD reference manuals? Do you know the general computer architecture? Do you want to program for Windows or Linux or MAC or other? Have you programmed in any other languages (eg. BASIC or C)? Do you know what hex and binary are?

But you can try some of the examples in the fasm download. See which ones take your fancy and have a play.
Post 10 Sep 2008, 17:21
View user's profile Send private message Visit poster's website Reply with quote
tom tobias



Joined: 09 Sep 2003
Posts: 1320
Location: usa
Suppose that someone inquired which automobile was the best? What would you say?
A few would argue this, some that, but most of us would respond:
Mercedes.
Now, that doesn't mean that some other car isn't better for other applications, or for other tastes. But, in general, if one went to India, or China, or USA, or Saudi Arabia, or Nigeria, or Russia, or Canada, or Brazil, or (etc, etc, etc), in general, most people would acknowledge that Mercedes is the best engineered, best designed, most comfortable, safest, highest resale value, etc, etc, ...
Point then, is when we explain that FASM is the best, we mean, it is the most like Mercedes. Not necessarily the absolute best, but the relative best. Maybe for some particular application, some other assembler will be superior, who knows. For me, FASM is the Mercedes of assemblers.
Post 10 Sep 2008, 17:53
View user's profile Send private message Reply with quote
bzaretsky



Joined: 10 Sep 2008
Posts: 5
Thanks a lot. Then Mercedes it is.
Post 10 Sep 2008, 18:05
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4160
Location: 2018
the best is not Mercedes, it's Ferrari Very Happy
and Ferrarai starts with F as Fasm.
Masm is the Mercedes.
mercedes cars are sh*t
Nasm is the Nissan?


Last edited by edfed on 10 Sep 2008, 18:15; edited 1 time in total
Post 10 Sep 2008, 18:11
View user's profile Send private message Visit poster's website Reply with quote
bzaretsky



Joined: 10 Sep 2008
Posts: 5
revolution wrote:
It is hard to judge what advice to give. Your level of knowledge is unknown to me. Do you have the Intel and/or AMD reference manuals? Do you know the general computer architecture? Do you want to program for Windows or Linux or MAC or other? Have you programmed in any other languages (eg. BASIC or C)? Do you know what hex and binary are?

But you can try some of the examples in the fasm download. See which ones take your fancy and have a play.


I took assembler course (for 6500 micro) back in early 90's. i passed the tests with flying colors and made a project that did what it suppose to do. All from A-to-Z. But since then I never had a chance to do any programming. My employers were more interested in my designing power supplies. Now i have a good job opportunity where they need both power supply design and microcontrollers. I don't warry about the first. but micro's?.... If I can crank it in 3-4 months, i would be on top there. And I am willing to spend 10-12 hours a day (and more) to learn it.
Post 10 Sep 2008, 18:14
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4160
Location: 2018
sure!!! you design power supplies? Smile
wich type?
you want to learn what in asmx86?
Post 10 Sep 2008, 18:17
View user's profile Send private message Visit poster's website Reply with quote
Madis731



Joined: 25 Sep 2003
Posts: 2146
Location: Estonia
Ferrari like FASM is really fast,
Mercedes like MASM is really heavy and wobbly in the corners
Nissan like NASM gets the work done, but is for a budget user Razz
I'm not good with analogies.
Post 11 Sep 2008, 06:31
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 15870
Location: 162173 Ryugu
bzaretsky: If you can successfully program a 6500 then "upgrading" to x86 should be a breeze for you. But the problem you stated is which assembler to choose, so write down a list of things you expect it to do and see which assembler matches the best.

Some things that are unique to fasm which you might like to consider:
  • Self compiling written entirely in assembly so no need for and external C compiler.
  • Can be set to produce EXE files directly so no need for a linker.
  • Doesn't use command line switches so no bother with trying to find the right commands to make others project assemble.
Perhaps one downside is that many examples posted elsewhere for are intended for MASM. Those MASM format source files cannot be directly assembled by fasm, you would need to do some editing.

[edit]fasm also has an ARM version. If you are doing some embedded programming then it may be of interest to you.[/edit]
Post 11 Sep 2008, 06:51
View user's profile Send private message Visit poster's website Reply with quote
bogdanontanu



Joined: 07 Jan 2004
Posts: 403
Location: Sol. Earth. Europe. Romania. Bucuresti
revolution wrote:

...
Some things that are unique to fasm which you might like to consider:
  • Self compiling written entirely in assembly so no need for and external C compiler.


Well, I am sure revolution is not aware but Sol_Asm is also completely written in asm and it compiles itself. AFAIK Octasm also and there might be others ...

Quote:

  • Can be set to produce EXE files directly so no need for a linker.


  • Sol_Asm can do this also...hence again this feature is not "unique"

    Quote:

  • Doesn't use command line switches so no bother with trying to find the right commands to make others project assemble.


  • Semi true after the addition of "-d equate = value" command line options.

    Command line parameters are a requirement for modern assemblers especially if you do big projects or target multiple OSes or integrate with other code and build systems. Not having command line options is hardly a feature.

    Quote:

    Perhaps one downside is that many examples posted elsewhere for are intended for MASM. Those MASM format source files cannot be directly assembled by fasm, you would need to do some editing.


    Hmmm there are many example is FASM also.

    However from an experienced ASM programmer's point of view the greatest downside of FASM is it's macro system that is very complicated to read and understand and has a big design flaw.

    In fact this was one of the reasons why I decided to write my own macro assembler and not to use FASM for my projects. The other reason was the FASM source code that is very badly written although to be honest it does function correctly.

    Not advocating against FASM and not promoting my own assembler because it is not yet fully finished and after all we are on a FASM board here. Honestly since you have asked on a FASM board then you should use FASM and most answers will be biased automatically.

    But do not use FASM because of the "unique features" presented by revolution but because you like it and feel like it is a match for your own heart and ways of programming.

    For me FASM does not match my heart but it might match yours.

    I have noticed that you have asked the very same question on multiple boards. Hence I do suggest that you take each assembler for a test ride and choose one for your heart and pleasure.

    Do not make it a goal. Make the very second you use an assembler filled with pure pleasure and joy. First the joy of discovery and testing and then the joy of creation with your chosen tool. This way it does not matter how many years you have left to live and if you do or do not obtain your distant goals ... but it does matter that you have filled your every moment with joy.

    And maybe one day you will create your own tool to match your heart perfectly...

    _________________
    "Any intelligent fool can make things bigger,
    more complex, and more violent.
    It takes a touch of genius -- and a lot of courage --
    to move in the opposite direction."
    Post 11 Sep 2008, 09:35
    View user's profile Send private message Visit poster's website Reply with quote
    neville



    Joined: 13 Jul 2008
    Posts: 507
    Location: New Zealand
    The best things about FASM for me at the moment are:

    - no tedious syntax required
    e.g no ASSUME directives, PROC/ENDP etc as in MASM

    - support for Flat Real code

    - extremely reliable

    - source available

    Good luck bzaretsky!

    _________________
    FAMOS - the first memory operating system
    Post 11 Sep 2008, 11:09
    View user's profile Send private message Visit poster's website Reply with quote
    LocoDelAssembly
    Your code has a bug


    Joined: 06 May 2005
    Posts: 4634
    Location: Argentina
    bogdanontanu wrote:

    However from an experienced ASM programmer's point of view the greatest downside of FASM is it's macro system that is very complicated to read and understand and as a big design flaw.


    What is this "design flaw" that you mention?
    Post 11 Sep 2008, 14:33
    View user's profile Send private message Reply with quote
    revolution
    When all else fails, read the source


    Joined: 24 Aug 2004
    Posts: 15870
    Location: 162173 Ryugu
    [offtopic about design requests]I know of some possible things that people have asked for:
    • Inline macro expansion
    • Case insensitive matching
    • Substring matching/extraction
    • Early exit
    [/offtopic about design requests]
    Post 11 Sep 2008, 14:54
    View user's profile Send private message Visit poster's website Reply with quote
    bzaretsky



    Joined: 10 Sep 2008
    Posts: 5
    Thanks a lot to you all. I've got a lot of information. You all've been very helpful Smile
    Post 15 Sep 2008, 21:54
    View user's profile Send private message Reply with quote
    kalambong



    Joined: 08 Nov 2008
    Posts: 165
    bzaretsky wrote:
    Thanks a lot. Yes, MASM was a typo.
    Again, I am not experienced at all. To do all assembler would need a lot of time to learn and $$ to actually have hands-on experience. I don't have that many years left in my life. I bet that anyone knowng about assembly more than laying stone knows already more than I. That's why I seek for help here.


    I'm about the same boat as you are, but if I'm gonna learn something, I'd set aside time and $$$.

    Assembly language isn't something ordinary folks would want to muddle with. Out of 100 college grads with programming training, maybe 1 would want to explore the world of assembler language. Out of 1,000, maybe 1 would actually learn.

    But for those who prefer assembler language to all other higher-level language, maybe the ratio is 1: 100,000

    Perhaps because of this, the latest versions of GPUs aren't even accessible with assemblies anymore.
    Post 08 Nov 2008, 08:30
    View user's profile Send private message Reply with quote
    asmcoder



    Joined: 02 Jun 2008
    Posts: 785
    [content deleted]


    Last edited by asmcoder on 14 Aug 2009, 14:55; edited 1 time in total
    Post 08 Nov 2008, 20:05
    View user's profile Send private message Reply with quote
    vid
    Verbosity in development


    Joined: 05 Sep 2003
    Posts: 7109
    Location: Slovakia
    Quote:
    No stupid linkers, wich even today i dont know what they do

    Therefor, they are stupid Very Happy

    Quote:
    You can compile raw binaries, good for shellcoding (but olly better)

    Same point as previous

    Quote:
    only 1 file, you dont have to wonder why it doesnt work

    That is coding style and has nothing to do with FASM

    Quote:
    intel syntax

    not really
    Post 08 Nov 2008, 23:23
    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:  


    < 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 © 2004-2018, Tomasz Grysztar.

    Powered by rwasa.