Catagories of Assembly Languages

From: NoDot (no_dot_at_msn.remove_this.com)
Date: 09/25/04


Date: Fri, 24 Sep 2004 23:04:20 -0500

This is not a thread about HLA.
This is not a thread about RosAsm.
This is not a thread about whether or not HLA is an assembler.
This is not a promotion for *any* product whatsoever.

This thread is about the catagories of assembly languages.
It is *NOT* about their implimentations, whatever they may be.

A brief outline so you know what's to come:
1) Assembly Languages
2) Macro Assebmly Languages
3) Semi-High Level Assembly Languages
4) High Level Assembly Languages
5) What "Assembly Language" means in "normal" usage.
6) Conclusion

1) Assembly Languages
An Assembly Language (also know as a symbolic assembly language) is a
lnguages that directly translates down into the processor's instructions
and includes support for symbolic lables for ease of use, and assembler
directives, which change depending on the output format and the
assembler's option level.

I know of none for the x86 family of processors and runs of any known OS.

2) Macro Assembly Language
A Macro Assembly Language is a dirivitive of Assembly Languages. It
includes the same abilities of assembly languages and also adds
capabilities such as equates, macros, and symbolic constants. The level
of power offered by these features is dependant opon the assembler.

Macro Assembly Languages include (these refer to the languages) NASM,
and I can't think of any others.

3) Semi-High Level Assembly Languages
Simi-High Level Assembly Languages are often forgotten, and lumped
together with high level assembly languages. Semi-high levle assembly
languages offer the same capabilities as macro assembly languages, but
add support for the HL-like features, data typing and composite data
types. Data types are supported for attempting to assist in error
tracking and correction. A semi-high level assembly language's support
for composite data types include support for HL declarations and usage
of things such as records/structures, unions, and namespaces, though not
all of these need to be supported.

Examples of semi-high level assembly languages include GoAsm and FASM.

4) High Level Assembly Languages
A high level assembly language combines some HL abstraction in the form
of high level conditions and high level looping constructs with the
powers of the S-HLAL. Many people believe HLALs are not capable of
writing low-level code like that from a macro assembly language or a
pure assembly language. This is a lie. All current HLALs can have code
written in low-level form, because if they couldn't, then they couldn't
be assembly programs.

Examples of HLALs are HLA, MASM, TASM, and (what of the language
actually belongs to it) Terse.

5) What "Assembly Language" means in "normal" usage.
This is the section where I repair the damage I've done to your personal
beliefs. I will give you the average personal definition of assembly
language. Before doing so, however, I will have to explain the concept
of the personal definition.

The personal definition is the definition of a word a person uses when
it is used in "normal" context. Personal definitions vary from person
to person, so I can only give you the usual definition as used by most
people.

The normal personal definition of the phrase "assembly language" isn't a
definition at all, but a group. This group consists of assembly
languages, macro assembly languages, S-HLALs, and HLALs. A good number
of people, however, don't include S-HLALs and HLALs in their definition
of assembly language.

6) Conclusion
Like these definitions? I hope so. If not, then you don't have to use
them. I don't honestly care. I'll likely get nailed for this and start
another HLA vs. RosAsm debate, but who knows and who cares? I can only
hope for the best.

(If I don't have a 200 post long flame war next morning, I'll be surprised.)



Relevant Pages

  • Re: Programming: Not stressful? Yeah, right...
    ... not to instructions but to pseudo-instruction ... I was thinking in terms of IBM mainframe assembler which unlike ... Most assembly languages are obfuscated enough, ... It's possible to hide all pointers by using the macro processor like a ...
    (comp.programming)
  • Re: An Object-Oriented Syntax for x86 Assembly
    ... HLAOObonics would beat RosAsm in a stupid race, ... >What possible purpose does the cryptic RosAsm syntax serve? ... 6502 assembler before you wrote yours. ... The fact is that all assembly languages are just about the same--until ...
    (alt.lang.asm)
  • Re: MSIL or Bytecode taught instead of ASM
    ... I remember I learned Microsoft Assembler and went ... A program which worked fine in gcc 2.x had a weird bug with gcc 3. ... There is no HLL for writing SIMD code - there are compiler primitives, but they map closely onto SIMD instructions, so knowing these assembly instructions is a prerequisite for writing vectorized code. ...
    (comp.programming)
  • Re: ASM/HLA
    ... > some differences in asm so I'm a bit confused on where to ... Iam not sure what makes you think C# has something to do with assembler, ... machine for for a virtual machine, and is maybe a good thing to start with ... since it is much simpler than other assembly languages. ...
    (microsoft.public.dotnet.languages.csharp)