July 2007


Jul 7, 2007: 7. A little more about assemblers and learning


To continue my previous entry in this series, that I also have corrected a little with the help of someone better informed than I am about assemblers and their recent history, I can state a rather firm conclusion I reached after two months of searching, reading, investigating and trying out environments and compilers in assemblerland.

It is this:

If you really want to learn assembler, and do not know it already (or know it as I do, to some extent: from DOS-days), the best option in terms of integrated approach, help, debugging, source editor, and quite a few more things, is RosAsm.

There are quite a few reasons I could mention, that are in part personal, but two important objective facts everybody should seriously weigh if they want to learn assembler are these:

  • The Help in RosAsm, with its Right Click feature, that immediately pops up highly relevant and well-written help with almost any term (!!) in the code, is extra-ordinary good, and better than I have seen the last 20 years in any programming environment. (And I have seen and used a lot of these!)
    This will save you (and me) an enormous amount of time in learning assembler, and it is extra-ordinarily well developed and implemented, and also a great tool for moving through the code.
  • RosAsm is very much further developed, debugged, tested etc. than any other combination of compiler + ide + help that I have found in assemblerland these two months of looking - and if I can't find it after two months of trying, it very probably is just not there.

Regardless of your own politics or faith, these seem to me to major points in favour of RosAsm - and indeed they also hold for christian conservatives who want or need to learn assembler, for the mathematics and the code and the rest are just the same whatever your further beliefs and values.

And what Hyde and Hutch say about the qualities (or lacks thereof) of RosAsm as assembler, or as integrated environment, or as regards its help, just is not so, in my experience - and I am neither young, nor naive, nor prejudiced, and also I have no stock or shares in RosAsm. I just want to learn assembler, and not be bothered by bugs, missing documentation, a none-too-good IDE etc. (And I don't like to be intentionally misled about what the facts are, that's also true.)

I merely considered the question I started two months ago with:

What is the best assembler in terms of a working, debugged, stable program, good environment, and good documentation, so that I can learn it as fast and as easily as possible?

My answer is RosAsm, and it would seem to me that it would be different only if (i) you already know assembler quite well, and don't need to learn it first or (ii) you have special desires concerning programming in assembler that are not met by RosAsm or (iii) you have some personal interest in other assemblers or their makers or (iv) you dislike the sort of political stances the maker of RosAsm takes.

In case of (i), your position is quite different from mine and other relative beginners with assembly.

In case of (ii), you must be fairly careful about distinguishing between what is really possible now in the various available assemblers, and what is promised (and may never be realized, or take many years of development).

But - as always speaking for myself in the first place - one interesting alternative I saw is ObjAsm32, which contains a fairly well worked out OOP-set up for Assembler, which in this case must for the moment be masm32, for that is what ObjAsm32's developer coded for.

Another reason not to use RosAsm is that it does not exist for Linux, and only produces PE-files. If this is what you want or need - non-PE files or Linux-assembly - you probably need another assembler than RosAsm.

In case of (iii), you are differently placed than I am. As for now, I have no personal acquaintance with anyone in assembler-land, apart from a few mails here and there (and I tend to put considerable weight for my judgments of persons on face-to-face meetings - as anyone can say what he pleases in mails, and only reveals parts there, usually precooked for effect, consciously or not, and in that way I do not know anyone who codes assembly). But consider the next point.

In case (iv), you may be a christian conservative, or a muslim, or an American Republican, and you may much dislike Tournois's political opinions (some of which you can find, briefly, B_U_Asm, which is RosAsm's 2 MB excellent help - and see e.g. the entries politics or faith in my Philosophical Dictionary, if you are interested in these matters).

Well, speaking for myself, I am none of these - christian, conservative, muslim, American, Republican - although I am not at all popular among Dutch academic lefties, and not regarded as a leftist by Dutch career-leftists (whom I tend to regard as phonies, but that is another matter than programming, so I leave it here - there is more on this on the rest of my site, mostly in Dutch).

In any case, my own stance is that I learned a lot of mathematics from all manner of writers whose politics or religion or philosophy I did not share at all, but whose books on mathematics or logic were fine, because they really understood their mathematical subjects, and could really write.

Therefore, since the mathematics and the code remain the same, as do the many years - ten, meanwhile - of debugging and improving that were invested in RosAsm, it seems to me fairly silly - supposing you want to really learn assembler - to torture yourself with, say, Hutch's TheGun + masm32 to learn assembler, on the strength of Hutch's mails, for example, or because Tournois is not a decent christian or muslim, and also lacks the virtues of being Australian or American.

Speaking for myself, I have downloaded and tried all assemblers and most IDEs I could find, and played at least some hours with every set-up I could get working (and in quite a few cases through quite a few days).

I want to learn assembler, not politics or theology (and I can think for myself, thank you kindly!), and it is my considered and evidence-based opinion that RosAsm at present is far better than all of the available competition, at least for someone placed like me: A decent to good and experienced programmer in other languages, who likes to learn real assembler.

For such people, I recommend the downloading of RosAsm (take the full edition: it has all you need, installs without any problem, and comes with many fine tutorials) and start playing with some tutorials, and especially with the Right Click feature, that is extra-ordinarily helpful to learn a programming language, and that I've never seen before, and that is very well implemented and a joy to use.

It convinced me - an old cynic and skeptic, and quite learned as well - and it is difficult to see how it would fail to convince you, provided you are fair, level-headed, out to really learn assembler, and free from political or religious prejudice, and you really tried it out.

Try it out, for it really is amazing and inspiring, even if you rather use something else.

If this sounds as an advertisement for RosAsm: I can't help it if I found it truly impressive, and that I am used to saying what I think rather than what others want to hear me say.

Also, while Tournois may have his faults (who doesn't?), I found it rather disappointing that Hyde and Hutch misrepresented what seem to me to be Tournois' real and considerable achievements in designing a working, debugged, and as far as I can see really fine assembler, written in itself, and very well-documented as well.

Neither Hyde nor Huch has achieved the same at the moment, though personally I like Hyde's text "The Art of Assembly", and so - speaking as a psychologist - I can understand their sour grapes feelings. But then I also seem to recall, from my reading the Bible, that the Lord (whom Hyde and possibly Hutch believe in) frowns upon those who say "the thing that is not" (Swift), and maintains a very hot and eternal hell for sinners. Me, I don't believe this, but I don't like to be misled as regards facts.

P.S. I have inserted some links to my Philosophical Dictionary (around 8 MB of text, at the moment), both for your information, and to ward off mails of 17-year olds who just "know" I must be wrong. (I may be, kiddo, but I am 57 and know a lot, and worked hard. Also, I am willing to discuss many things, but not really with those who found it difficult or impossible to qualify themselves academically.)

Maarten Maartensz


        home - index - top - mail