Re: The textbook ASSEMBLERS AND LOADERS...

From: The_Sage (a.b_at_c.com)
Date: 10/19/04


Date: Mon, 18 Oct 2004 22:50:21 -0700


>Reply to article by: "Randall Hyde" <randyhyde@earthlink.net>
>Date written: Mon, 18 Oct 2004 17:46:35 GMT
>MsgID:<%jTcd.182$KJ6.73@newsread1.news.pas.earthlink.net>

>>>>Masm is no longer an assembler... it has loops, and if/else statements.

>>>MASM does not have if/else statements or structures, it has if/else directives.
>>>Directives are very similar to split-macros.

>>I do not understand what you mean as directives. But until then...

>Directives, statements, built-in macros, user-written macros,
>etc., etc., it's all the same.

Well let's see if Randall knows what he is talking about, as the textbook I
cited has a whole chapter dedicated to directives (chapter three to be exact)...

   "In addition to assembling instructions, the assembler offers help to the
   programmer in the form of directives. The directives are commands to the
   assembler, directing it to perform operations other than assembling
   instructions. The directives are thus executed by the assembler, not
   assembled by it"

Chapter four is dedicated to macros and it states...

   "Strictly speaking, macros are directives but, since they are so commonly
   used (and also not easy for the assembler to execute), most assemblers
   consider them features, rather then directives"

Finally, anything not an assembly instruction is a statement -- that is just
elementary computer science.

So Randall is wrong, they are not "all the same thing" and if you ever used any
of these various features, you would already know that he was just BS'ing.

MS considered the IF-ELSE-ENDIF statements a directive, as indicated by their
dot notation, but a directive is not the same thing as structure. Directives can
be structured but that doesn't make them structures. No one who knows what they
are talking about is going to call a macro a structure or a directive a
structure, that would obviously just be plain ignorant.

NOTE: Using Randall's "logic", VC++ is an HLL and an HLA...and in that case one
that I would consider far superior to Randall's HLA since it will support
objects, is very widely used in the industry, supports POSIX, is standardized,
is international, supports more computer platforms, and is taught in all major
universities.

>But if you're going to call them directives in MASM, and that's what
>keeps MASM from becoming a HLL,

Randall just doesn't get it. An HLA is not an HLL and we were talking about
HLAs. An HLL is defined as a "programming language which provides some level of
abstraction above assembly language" and directives or macros is not considered
by computer experts as a programming language or even an extension of a
language. Besides, no version of MASM is an HLA since it passes the one most
important criteria for defining an HLA as put forth by the real experts on the
matter (as I cited in the original posting): The language is processor
dependent. HLLs are processor independant (mov eax,ebx is specific to Intel
processors but IF-ELSE-ENDIF is not specific to any processor).

Even still, trying to lump all of MASM into one bucket isn't going to work, not
if you are intellectually honest. If you want to believe that MASM with
IF-ELSE-ENDIF directives is an HLA, then don't go around saying that MASM is an
HLA when MASM 5.1 has no IF-ELSE-ENDIF directives. By your logic, MASM 6.0 and
above would be an HLA but MASM versions below 6.0 are not.

The Sage

=============================================================
My Home Page : http://members.cox.net/the.sage

"The men that American people admire most extravagantly are
most daring liars; the men they detest the most violently are
those who try to tell them the truth" -- H. L. Mencken
=============================================================



Relevant Pages

  • Re: Rocket Science
    ... >> Also, logically, if MASM is the underlying assembler being used by ... then MASM must always be being run in addition to HLA so ... the MASM or FASM or whatever underlying assembler's speed into its own ...
    (alt.lang.asm)
  • Re: HLA v1.93 is now available
    ... MASM does branch displacement optimization. ... would anyone want to use an assembler that forces *them* to do this ... NASM as a back-end to HLA? ...
    (alt.lang.asm)
  • Re: HLA v2.x and / or LASM suggestion: Win32 Resources
    ... >> Beth, now it's obvious, you spent to much time with HLA. ... >> an assembler and therefore also an exe file with an included ... "RC" tool effectively means that you can't really put resources ... MASM because it won't do "flat binary" (when you say "any true Low ...
    (alt.lang.asm)
  • Re: What is this code doing?
    ... > Implying that MASM is an abomination? ... Unless you're thinking that HLA ... MASM's macro facilities way back in 1996 when I was driven ... in the high-level assembler arena. ...
    (alt.lang.asm)
  • Re: What is this code doing?
    ... > Does HLA completely supercede MASM? ... > 32-bit programming, so if you want to use segments ... > personal choice which assembler you're going to use. ...
    (alt.lang.asm)