Re: which assembler to use : newbie query

Frank Kotler <[email protected]> Tue, 01 Aug 2006 18:17:48 -0400
Newsgroups org.kernel.vger.linux-assembly
Message-ID <[email protected]>
Only OpenSource wrote:
> Hello all
> 
> I want to learn assembly language properly so that I can understand
> FreeBSD assembly code.
> Which assembler do I need to use : as or nasm.

Yes. :)

Here's something I just posted elsewhere - not really the same question, 
but maybe close enough...

--------------------------

MQ wrote:

 > Noway2 wrote:
 >
 >> Sam wrote:
 >>
 >>>> Can anyone recommend a tutorial on NASM syntax (other than Dr. Paul
 >>>> Carter's ?) Or any assembler book using NASM syntax? I'm shifting from
 >>>> gas to nasm -- that's why.
 >>>>
 >>>> thanks.
 >>>
 >>>
 >>> I'm new to assembler and thought I'd learn (g)as since GNU puts out a
 >>> ton of other development tools. Why are you shifting to NASM? Since I'm
 >>> fresh into learning assembler I might want to make the shift also...
 >>
 >>
 >> The fact that the gnu assembler syntax is awful probably has a lot to
 >> do with it.
 >
 >
 >
 > yes, gas uses AT&T syntax, which is a pile of steaming manure...


Recent versions of Gas, perhaps not available for djgpp(?), have an 
".intel_syntax noprefix" switch, which produces *less* steam.

It wasn't added for gcc's convenience, so the argument that Gas is "only 
fit for gcc's output" is no longer true. (although it *was*, at one time!!!)

I'm one of Nasm's biggest fans, and I don't think you'll go far wrong 
choosing Nasm... *but*... Nasm doesn't have 64-bit support, and isn't 
likely to, soon. Gas (and Fasm and Yasm) do. This might influence your 
decision!

Why not become "bilingual"? I can't *write* anything in Gas without 
making a lot of syntax errors, but I can read it and figure out what 
it's doing... usually. Pretty handy to have *some* familiarity with 
both! (Fasm and Yasm are similar enough to Nasm that they almost come 
free... couple subtleties...)

As far as a tutorial... other than Dr. Carter's... Maybe:

http://docs.cs.up.ac.za/programming/asm/derick_tut/

http://www.leto.net/writing/nasm.txt

http://www.rawcode.org/

This last is brand new - mostly in Italian (except for the code, which 
is in Intel), but being translated to English "as we speak" - and the 
guy is looking for help!

Seems to me there are a couple more - I can't find links right now - 
none of 'em as extensive as Dr. Carter's...

http://www.linuxassembly.org

is a good place to look for info and links...

Best,
Frank

P.S. For BSD, add the BSD Developer's Handbook, chapter... 17, I think? 
You can find it. *Very* good!