HLA, the High Level Assembler, is a powerful x86 assembly language
that supports a Pascal/C/Modula-2-like syntax that makes learning and
using assembly language very easy. Although originally written as a
tool to teach assembly language programming to University Students,
HLA's advanced features make it a natural for advanced assembly
language programmers as well.

The HLA package includes the "HLA Standard Library" a package of
hundreds of functions, macro, data declarations, and other HLA code,
that makes assembly language programming trivial. The HLA Standard
Library is available for Linux and Windows, so code that calls the HLA
Standard Library is portable between the two OSes.

A Linux edition of "The Art of Assembly Language Programming" provides
the perfect text for beginners who know a high level programming
language and want to learn assembly language programming under Linux.
You can find "Art of Asm" at the Web URL above.

In addition to the 1,500 pages appearing in the "Art of Asm," the HLA
package also includes over 500 pages of documentation, articles, and
other information related to HLA programming.

Programs written in HLA are far more readable than programs written in
traditional assembly language. For example, here is the ubiquitous
"Hello World" program written in HLA:

program HelloWorld;
#include( "stdlib.hhf" )
begin HelloWorld;

stdout.put( "Hello World" nl );

end HelloWorld;

No, this doesn't look at all like assembly language, but that's
because it's such a trivial program (just invokes a macro in the HLA
Standard Library). Here's a more practical example that actually has
some recognizable machine instructions in it:

For die-hard assembly fans, don't get the impression that you have to
use statements like "IF" and "WHILE" in an HLA program. HLA also
allows CMPs and conditional jumps if you prefer to write your assembly
code the old fashioned way.

HLA is totally free (i.e., public domain) and is available in
executable and source form. HLA was written using Flex/Bison/C and a
few lines of assembly code (HLA).