Re: Which assembler (or compiler) to start with? (newbie question)



Marion wrote:
Hello all,

I'm going to be taking assembly next semester

Good. If possible, find out "how" the course will be taught. Which textbook, which assembler, which OS...

and I'm bored here
during Christmas vacation (imagine that). :p

Some people strap boards to their feet and jump off mountains. Asm is safer. :)

So, I thought I'd teach myself assembly and get a jump ahead in my
class

Good plan! Asm is actually fairly "easy" (some people think it's "fun"), but there's a lot to learn, pretty much "all at once", before you can "do" anything. *Any* kind of head start should help a lot...

and searched Google for free assemblers and lo and behold!
There are so many of them!

Isn't that nice? :)

FASM, MASM, NASM, HLA...it's frightening.

Don't forget RosAsm:

http://rosasm.org

I thought it'd be an easy
thing to find and choose but not after reading the descriptions I
thought I should start with MASM then eventually do NASM?

If there were an actual "answer" to which is "best", we would all know it, and would tell ya. Since we *don't* agree, it probably "depends".

Assembly is pretty universal in commands, aren't they?

Yes and no. Machine language - the actual code the CPU executes - varies completely with which CPU. For the "x86 family", (almost) all the old instructions from 8086 on still work, but new instructions have been added. The way we "say it" in the source code, to generate these "universal" instructions, varies quite a bit from one assembler to another.

Does it really
matter which one I start with?

No. But switching from one to another can be a nuisance. Not a big deal, but it's an extra "layer of confusion" that you'd like to avoid if possible (although, being "multi-lingual" is a Good Thing). So if you know where you'll "end up", that's a good place to start. In this case, that probably means the assembler/OS your course is using.

I am a newbie just wanting to get
familiarized with the language and its' intrinsics (well the
elementary stuff anyway.)

http://home.comcast.net/~fbkotler/clueless.html

"The Clueless Newbie's Guide to Hello World in Nasm". Personally, I think it's "too simple" to be much help, but it'll help you while away your boring vacation for a few minutes. :)

(the "please mail me" address is badly out-of-date... must fix that some day...)

Any advice is appreciated.

Go for it! There's no "wrong" way to do it. If you can find out which assembler your course is going to be using, that might be best, but it won't kill ya to learn something you *won't* learn in your course!

Best,
Frank
.



Relevant Pages

  • Re: move this Forum somewhere else?
    ... Some instructions are "demoted" to special forms, ... No special keyword is needed to tell NASM to use the ... assembly I do is inlined in C, i.e., GAS for DJGPP and internal assembler ... If I need to disassemble an executable or object, ...
    (alt.lang.asm)
  • Re: Is PSHUFW instruction MMX or SSE or SSE2? Is NASM manual correct?
    ... > HLA and an assembler. ... they are actually using NASM as the assembler, ... Why not just use NASM to begin with?00 ... remember all the most in used instructions. ...
    (alt.lang.asm)
  • Re: NASM 2.06rc1
    ... I was just playing around with 64-bit instructions. ... version of my favorite assembler, NASM 2.06rc1. ... producing the DOS versions... ...
    (alt.lang.asm)
  • NASM 2.06rc1
    ... I was just playing around with 64-bit instructions. ... version of my favorite assembler, NASM 2.06rc1. ... Why does an encode of jrcxz decode as jecxz?... ...
    (alt.lang.asm)
  • Re: Evolution
    ... > inline assembler and larger parts by linking to an assembler ... in the HLL. ... language, particularly in smaller projects. ... > or two instructions if you ...
    (alt.lang.asm)