Hi All,

I am new to PC assembler but I have coded 680x0 assembler for many years. I would like to move over to PC assembly but I am not sure whether I should go with HLA (which makes more sense to me) or normal masm or tasm assemblers.
I would like to find out about the limitations or HLA as opposed to assemblers in respect to demos & some win32 programming!?.

Any advice much appreciated


Posted on 2002-02-01 00:35:28 by tomek
Im not sure if im the "proper" first reply, but myself, and with my experience with many languages (assembly and C ~ (sytles)), i am personally unconvinced as of yet to deviate from the MASM32 assembly.

However, my motivations to keep programming is for "brain - teaser" type problems, and learning how to optomize myself into building the best "system" structure to adhear to the microsoft way of doing things.

If learning radical new ways at looking at problems to make something work is your thing, then i would definitely sugest you investing your time into the MASM32 package that Hutch provides on his web-site.

Posted on 2002-02-01 00:56:15 by NaN
I don't like HLA... except for macros-like things...

I don't see the point to use it... to me it is the same as using C and asm inline sometimes...
Posted on 2002-02-01 01:09:35 by JCP
I'm not a big fan of HLA either, it has a quirky syntax. MASM is much more natural.
Posted on 2002-02-01 03:38:53 by Asm_Freak

funny, many years ago when I went from Amiga (68000 - 68020) to PC I've had the same question :)

If you are familar with:

move #1, d0


mov eax, 1
will not surprise you. There are only a couple of things which are different.
- operand order,
- byte order in memory
- less registers (really shitty)- much more speed (hehe)

Depending on what you are going to code you may choose MASM because most of the stuff at this board depends
on it. But there are very good other assemblers. Check out http://betov.free.fr/SpAsm.html too.

BTW. You may choose a language different then assembly. That way we have to wait approximately a half year and you will come back again :D
Posted on 2002-02-01 03:56:34 by miracle
Besides MASM and TASM, and HLA, there are also:

A86, A386, NASM, and FASM, and probably a few more!

All of them are probably quite acceptable. Some of them are free, the rest are inexpensive.

Since I am a newbie, my preference tends to run to the ones that come with the clearest and easiest to comprehend documentation, even if it may not be the best choice strictly from its fuctionality as an assemblr.

Microsoft assembler is one of the free ones. I don't know about Microsoft assembler's documentation, but Microsoft products in general, though themselves are usually very good products, have always had help files written by people who like to waste other people's time. Nothing is so annoying as not knowing what something means, and after going on a long hunt to find documentation about it, the documentation tells you what you already know -- only in more words. For example if you want to know what the menu choice "shave" means, and you finally find the documentation for it after a long, long hunt, you tend to be rather insulted when the documentation says: "click 'shave' to shave."
Posted on 2002-02-05 17:23:09 by verb
Being you an "ex" 680x0 coder (BTW: may I ask.. Amiga, Atari or Mac?), I suggest first of all to take a look at GEMA, which was made specifically for "you".

Then I suggest you to go with NASM.. because you may like it (even much) more than MASM, and if I intuite correctly, you're the kind of coder who does demos, etc.. so I don't think you care too much about the things built in MASM that make it more "Microsoft friendly" (it makes it simpler to interface to Win32 API's than other assemblers, etc..).

Personally I prefer NASM, but others told you different things.. so why don't you look and try for yourself which one is best for you?

Anyway, take a look also at GEMA, nothing too useful in practice, but it's a good introduction from 680x0 to x86.

I hope that was helpful.

Posted on 2002-02-05 18:59:21 by Maverick
Posted on 2002-02-05 19:15:27 by Maverick
If you're new to the x86, go with MASM. Period. There is far more support, both here and in general, for MASM. Once you've got the "idea" under your belt, then if there is something about MASM that you don't like, take a look at the other assemblers. I haven't found that much that I don't like about MASM. At least not enough for me to look at another assembler. I played with TASM, A386, and others that I don't remember, years ago. I didn't find a reason to change then, and I haven't found one now. Especially with the newer versions...

Posted on 2002-02-05 22:39:47 by S/390
I pretty much agree with S/390 here, if you want to write functional assembly language programs, do it in MASM, if you want to play with assemblers generally, try some of the others later when you know enough about the general area.


Posted on 2002-02-05 23:47:07 by hutch--
Thank you all for your comments and suggestions.

I have decided to give MASM a go since it has majority of support here. Can anyone suggest a good place to find MASM documentation?


Posted on 2002-02-11 07:27:40 by tomek
http://www.movsd.com , the Hutch's site. It hosts the MASM32 package which contains lots of documentations...

This message board is a great information source too...
Posted on 2002-02-11 07:36:48 by JCP
use MASM if you want to do HLL.
Posted on 2002-02-11 08:57:26 by Toro
Its a myth that MASM is restricted to HLL style assembler, it does that well but it will write ANY assembler instructions in win32 that can be used and it usually does it smaller as well. You can write full manual code if you want, Intel instructions are Intel instructions and MASM can write them all.

The advantage is that MASM can get you up and going a lot faster than the rest and you can do more with it, it depends if you want to write fast small assembler code or play with assemblers.


Posted on 2002-02-11 09:18:32 by hutch--