Re: HLA
- From: "randyhyde@xxxxxxxxxxxxx" <randyhyde@xxxxxxxxxxxxx>
- Date: 29 Jun 2006 16:21:46 -0700
santosh wrote:
Well, to date no one has written a single 32-bit Windows or Linux
assembly language program with any other assembler than cannot be
directly translated into HLA. HLA has a superset of features found in
most of the x86 assemblers out there, so it is certainly the case that
you can do anything (and learn anything) with HLA that you can with any
other assemblers. The argument against HLA seems to center around all
the extra stuff appearing in HLA (most of which, BTW, appears in MASM
and TASM, as well). But if you're not interested in that extra stuff,
there's a simply policy you can follow -- don't use it.
Alas, but AoA *does* use it heavily. And AoA is the principal reason
why beginners choose HLA.
I think the concern is whether he would be able to write "real"
assembly once having learned it via HLA (and AoA, let's not separate
the two here). I'm not sure he has a problem with the path to that
knowledge.
With that said, I admit that the vast majority of beginners would
*want* a HLL-like introduction to assembly. It's just that every once
in a while, you get a beginner who wants to learn assembly with AoA,
but doesn't like the heavy use of HLL-like constructs it makes of HLA.
Sure. And those people are currently better served by Jeff Duntemann's
"Assembly Step-by-step" (which uses NASM). HLA is
pedagogical-angnostic, of course. There's no reason a book like ASBS
couldn't be written using HLA, indeed, that would be a fun project
sometime. But as you point out, the market for such a book is a bit
smaller than for the approach that AoA takes.
I suppose they could always use AoA/16... or learn with another
assembler like NASM and then learn HLA with just the Reference Manual,
disregarding it's high-level capabilities. But then that would negate
the whole point of HLA's existence.
Well, HLA was written to support AoA. So if you use it outside AoA, I
guess you're absolutely right -- that would negate the whole point of
HLA's existence. :-)
Seriously, though, I don't subscribe to the theory that someone can
learn assembly language via a product reference manual (or even the CPU
manufacturer's data sheets). Sure, there's *someone* out there than can
do this, but by and large it just doesn't work. Because AoA is the only
book (I'm aware of) that uses HLA, attempting to learn assembly
language programming using HLA without AoA isn't really practical.
Someone who already *knows* assembly language could learn HLA from
HLA's reference manual (e.g., Beth or even Julienne), but that's not
how a beginner is going to efficiently learn assembly language
programming. If they want to use a different approach than AoA, then
AoA/16 with MASM could work, so would Jeff's ASBS (with NASM), or Dr.
Carter's book (with NASM), or Blum's or Bartlett's books (with Gas).
Fortunately there are lots of choices so those for whom the AoA
approach doesn't work, there are alternatives (and vice versa).
Cheers,
Randy Hyde
.