I enjoyed the little exposure I recently had with Assembly. And it has changed my mind. I used to think that it was meant for genius but I was wrong. It smells and feels like C, even though I am not a C expert.
I have gone through an easy book on Assembly using AT&T notation on Linux Box(64 bit). I would want to advance my skill further, which books/links do you think I should use? I want something free. Though my box is 64-bit machine, I limit myself to learning 32 bit for now.
Regards, Janus
I like Jonathan Bartlett's "Programming From The Ground Up":
http://savannah.nongnu.org/projects/pgubook/
unless that's the one you've already read...
Best,
Frank
>Hello All,
>
>I enjoyed the little exposure I recently had with Assembly. And it has chan=
>ged my mind. I used to think that it was meant for genius but I was wrong. =
>It smells and feels like C, even though I am not a C expert.=20
>
>I have gone through an easy book on Assembly using AT&T notation on Linux B=
>ox(64 bit). I would want to advance my skill further, which books/links do =
>you think I should use? I want something free. Though my box is 64-bit mach=
>ine, I limit myself to learning 32 bit for now.=20
If you are willing to change from AT&T notation to MASM, you
might want to look into the (free) MASM32 package. Besides
the MASM assembler there are great tutorials and example
code for Win32 applications in pure assembler. You can
probably get some of the tutorials on-line.... Google for
"Iczelion Tutorials".
One downside to the MASM32 package is that the Windows
include files and headers are not up to date. I rarely find
that to be a problem, because I deliberately avoid API calls
that would make my app incompatible with older Windows
versions.
Best regards,
Bob Masta
DAQARTA v6.02
Data AcQuisition And Real-Time Analysis
www.daqarta.com
Scope, Spectrum, Spectrogram, Sound Level Meter
Frequency Counter, FREE Signal Generator
Pitch Track, Pitch-to-MIDI
Science with your sound card!
Hmm, that's the book I read.
Janus
Ok, I will check it out if nothing useful comes out of my target
Janus
If you are willing to learn High-Level Assembly syntax and HLA Standard
Library functions (the benefit is it works cross-platform: BSD, Linux,
Windows, Mac OS X) there is Randall Hyde's Art of Assembly. Old edition is
available on his website:
http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/index.html
Another option is to visit your local library or used-book store and hunt
for these:
2nd Edition of Randy's AoA: http://www.nostarch.com/assembly2.htm
Kip Irvine's Assembly Language for x86 Processors:
http://www.kipirvine.com/asm/
Jeff Duntemann's Assembly Language Step-by-Step:
http://www.duntemann.com/assembly.html
That MASM32 package that Bob was talking about is here:
http://www.movsd.com/
Other links to possibly-useful resources: http://www.delicious.com/Evenbit/
Hope that helps.
Nathan.
--
About the CLAX UseNet group: http://clax.inspiretomorrow.net/
Policy & Technical Issues FAQs: http://clax.inspiretomorrow.net/clax86.html
From what I have gleaned from this thread ... AT&T notation is not popular. That means I have to change too.
Janus
why was the AT&T notation invented instead of using the Intel notation ?
The thing that is especially irritating is that the sequence of operands is
reversed ...
Lars
"janus" <emeka...@nospicedham.gmail.com> schrieb im Newsbeitrag
news:1a5376cc-85bb-4785...@glegroupsg2000goo.googlegroups.com...
>Just a curious question,
>
>why was the AT&T notation invented instead of using the Intel notation ?
>The thing that is especially irritating is that the sequence of operands is
>reversed ...
The "AT&T" syntax was used on a number of *nix implementations, on
different architectures, when x86 was added to the mix, and x86 was
beaten into that mold, rather then the other way around.
Operand order has been "source, destination" on the "standard"
assemblers for many architectures, including a number where *nix grew
up (PDP-11, VAX, 68K and SPARC, for example) plus many odder
approaches.
Of course, "destination, source" has been common as well, including
machines such as S/360, PPC, and of course, x86.
More than a few machines have had more than one assembler with
different syntaxes for use by different systems running on them.
>>Just a curious question,
>>why was the AT&T notation invented instead of using the Intel notation ?
>>The thing that is especially irritating is that the sequence of operands
>>is
>>reversed ...
> The "AT&T" syntax was used on a number of *nix implementations, on
> different architectures, when x86 was added to the mix, and x86 was
> beaten into that mold, rather then the other way around.
> Operand order has been "source, destination" on the "standard"
> assemblers for many architectures, including a number where *nix grew
> up (PDP-11, VAX, 68K and SPARC, for example) plus many odder
> approaches.
this just were a matter of the used programming tools.
I remember that I used PDP-11 and Motorola assemblers with
'destination,source' order.
> Of course, "destination, source" has been common as well, including
> machines such as S/360, PPC, and of course, x86.
Not to forget Zilog (my major device during 1978..90).
> More than a few machines have had more than one assembler with
> different syntaxes for use by different systems running on them.
and I may add my oppinion to the matter:
the way to express a function may depend on education,
milk-maids calculate: a+b=c
technicians express it as: c=a+b
so whatsoever you prefer takes you either into a camp of
ground-school-minded folks (the phone companies AT&T users)
or to scientific oriented programmers who know about math :)
__
wolfgang
Well, I guess that's why C has been called a high level assembler, in
both positive and negative meanings.
C isn't though. In assembly you can do:
add eax, ebx
jo .overflow
In C it ain't that simple...
a += b;
if (a < b) overflow();
OK, now adapt for subtraction, multiplication, or - the hell - division.
> I have gone through an easy book on Assembly using AT&T notation on
> Linux Box(64 bit). I would want to advance my skill further, which
> books/links do you think I should use? I want something free. Though
> my box is 64-bit machine, I limit myself to learning 32 bit for now.
Don't. AMD64 is an architecture quite different from i386. The ABIs
differ a lot, AMD64 gives you twice as many registers with twice the
length each. And then there's IP-relative addressing: i386 can't. AMD64
can, albeit limited to signed 4GB in range. In short: It's the better
architecture.
It would indeed be stupid to learn i386 now and have to adapt to 64 bit
like all the old guys.^^
Oh, and get rid of AT&T, the reason being, I only know of one assembler
using that syntax, and that's GAS. Now GAS is used to being fed input
from GCC, so error checking is minimal. For instance, each label used
that isn't defined in the source file is automatically treated as
external symbol. Tough luck, finding the one typo in your source then,
when the linker screams about undefined references.
Plus it's syllogic: The operand order is "source, destination". UNLESS
we're talking FPU, then it's the same as Intel.
>
> Regards, Janus
HTH,
Markus