Download HLA!
There are two different versions of HLA maintained on this site.

HLA v1.99 is a frozen version that incorporates the HLA Standard Library v1.x as part of the package (for Windows and Linux users). Beginners who are just learning assembly language programming using The Art of Assembly Language should download and use this version of HLA until they are comfortable programming in assembly language. The examples in The Art of Assembly Language use the routines found in the HLA standard library v1.x and beginning students will be able to use HLA v1.99/HLA stdlib v1.x without any problems.

To obtain HLA v1.99 (the frozen version), click here:

Download HLA v1.99

The other version maintained on this site is the latest version of the HLA compiler (HLA v1.100 or later). The latest version of the HLA system incorporates a new version of the HLA standard library (HLA stdlib v3.0 or later) that is more robust, more efficient, and better documented. However, the semantics and names of many of the original (v1.x) functions have been changed, which could cause some confusion for beginners who are trying to learn from The Art of Assembly Language (which teaches assembly language programming using v1.x of the standard library).

Installing HLA

Windows users can install HLA by simply running the "hlasetup.exe" program. For Linux and FreeBSD users installation consists of unzipping and unTAR'ing an archive file. Specific directions for installation are given in the following documents.

Windows Installation Guide

Linux Installation Guide

FreeBSD Installation Guide

Current Version: HLA v1.101

HLA v1.101 is a quick maintenance release that incorporates the HLA stdlib v3.1 package as well as various changes to the HLA header file set. This is also a "stable release" that will be kept around when the experimental v1.102 appears.

HLA v1.100 is the first version to support the FreeBSD operating system. This version of HLA also began shipping with the new HLA stdlib v3.0. Corrections included fixing problems with the output of 64-bit constants under Gas, correction of a problem with strcpylc, and fixing a type checking problem with enum values.

HLA v1.99 is the frozen version. The compiler had major changes made to it, but most of those changes were done to port the code to FreeBSD (HLA v1.100). There were several bugs fixed in the version update. Also, there were a few changes made to the stdlib v1.x to correct some issues before retiring it.

HLA v1.98 is a quick maintenance release that solves a couple problems encountered while creating the automated test suite for the HLA stdlib v2.3. You will need this version if you intend to run that regression test.

HLA v1.97 #2 (because of some version number issues, the version remains 1.97). Corrected a problem with outPath variable. Added HLAstdlibVersion constant to hla.hhf. Corrected a "classes" table inconsistency with enums.h. Fixed a defect that mishandled dotted names in various HLA CTL functions. Allowed NULL as a valid constant for the classify function. Allowed the use of @-CTL functions in various classification CTL functions. Modified string output to asm files to produce string literals with a maximum of 64 characters per statement (some strings were too long for various assemblers). Corrected a defect in the @uppercase and @lowercase functions. Worked on some problems with default paths for header files that include other header files. Fixed various bad pointer problems in the code. Added "-code1st" command-line parameter. Improved code generation for byte and word parameters. Corrected a defect having to do with passing tbyte constants as a value parameter. Added support for classes and namespaces to the @locals function.

HLA v1.97 #1 (which really appears as v1.96 in the release code) is a quick maintenance release to fix some problems HLA was having with environment paths and paths appearing within files included from a different directory (from the compilation directory).

HLA v1.96 is a quick maintenance release to fix some problems HLA was having with command-line parameters and pathnames passed between HLA and HLAPARSE.

Acknowledgements

Many thanks to Oleh Yuschuk for creating the HLA version of OllyDbg. Now HLA users have a machine-level debugger to help them debug their software! You can download OllyDbg here on Webster.

Also, thanks to Ketil Olsen for modifying the RadASM development environment to support HLA. Links to RadASM appear below. RadASM is also included as part of the HLAsetup.exe program (for first time users).

Thanks to Tomasz Grysztar for provided FASM in open source form, along with a reasonable license, to allow the creation of the new stand-alone version of HLAPARSE.

And special thanks to Sevag Krikorian for creating the HLA IDE (HIDE) specifially for the HLA system. Links to the official HIDE site appear below. HIDE is a great integrated development environment for beginning HLA users.

Windows Users:

HLA Installation Program (HLA v1.101, released 1/19/2008)
If you are a first-time HLA user, the best thing to do is download and run the HLA setup program.

Note: if you are learning assembly language with The Art of Assembly, you should probably use HLA v1.99 (the frozen version) using the link given earlier.


HLA Upgrade for Windows (HLA v1.101, released 2/19/2008)
If you've already installed and are using a previous version of HLA, then just download these binaries, includes, and library files as a ZIP file. Unzip these files over the top of your existing HLA installation (does not include RadASM, if you want RadASM then download that separately). HLA Executables for Windows

RadASM/HLA for HLA Users (v2.0.4.3 with HLA additions released 6/5/2003)
If you would like to use the RadASM Integrated Development Environment for Windows, here's a version of RadASM created specially for you. Existing RadASM users will want to extract the ".ini" files and HLA-specific files from this download. RadASM/HLA Executables

Linux Users:

HLA for Linux (HLA v1.101, released 2/19/2008)
The hla.linux.tar.gz file contains the binaries, includes, and library files for Linux. Please read the HLA installation guide to install these files under Linux. Note: The server has a nasty habit of thinking that this file is really named hla.tar.tar. If it saves this download under that name, please rename it to hla.tar.gz and everything will be fine.

Note: Beginning HLA users who are learning assembly language with The Art of Assembly should download the frozen version of HLA using the link given earlier.

HLA Executables for Linux

FreeBSD Users:

HLA for FreeBSD (HLA v1.101, released 2/19/2008)
The hla.bsd.tar.gz file contains the binaries, includes, and library files for FreeBSD. Please read the HLA installation guide to install these files under FreeBSD. Note: The server has a nasty habit of thinking that this file is really named hla.tar.tar. If it saves this download under that name, please rename it to hla.tar.gz and everything will be fine.

Note: The frozen version does not support FreeBSD.

HLA Executables for FreeBSD

For Everybody:

HLA Documentation (updated 2/19/2008)
Here's the documentation for HLA. Two versions are available: HTML and RTF. The RTF is better for printing or if you need to edit the document, and the HTML version is for those who prefer HTML.

Note: All files are in a "ZIP" format.

Note that the PDF and CHM versions are no longer available.

HLA Reference (HTML)

1. Whole
2. By Section

HLA Reference (RTF)
HLA Stdlib (HTML)
HLA Stdlib (RTF)
Windows documentation for HLA. This was split off from the HLA PDF documentation zip file because it's quite large and most HLA users don't need this right away. Win32 PDF Doc
Miscellaneous HLA Documentation and White Papers Misc Doc (HTML)

HLA Example Code (updated 2/19/2008)
Most of these programs are Windows-specific, but Linux users will also find some useful source code in here. This download includes the Iczelion tutorials for HLA.

Warning: most of this code was written for the HLA stdlib v1.x and was ported to HLA stdlib v3.x. This code compiles but has not been tested to see if it is still running correctly. Consider this is a work in progress. Download the frozen version of HLA (v1.99) if you need to compile one of these sample programs and want to run them in their original form.

HLA Examples/Sample Code

HLA Standard Library Source Code v3.1 (Updated 2/19/2008)
This ZIP file provides the source code for all the HLA Standard Library routines. Note that this single set of source files is applicable to the Windows, Linux, and FreeBSD systems. This is the new version of the standard library, if you want to inspect the source code for the older, v1.x, standard library, please see the link to the frozen version of HLA given above. Library Source Code

HLA Compiler Source Code (HLA v1.101, released 1/19/2008)
This ZIP file provides the source code for the HLA compiler. Note that HLA was developed under Windows. The C files are moved to Linux and compiled there to produce the Linux version. Please see "compiling HLA" for details. HLA Compiler Source

"Art of Assembly" and "Windows Programming in Assembly" Files:

HLA Sample Code for AoA and WPA
These files provide all the sample code for the Published edition of "The Art of Assembly Language", the electronic edition of "The Art of Assembly Language Programming" and the electronic edition of "Windows Programming in Assembly". Note that the AoA files are applicable to both Linux and Windows users.

This code was originally written for HLA stdlib v1.x and ported to the new standard library. It compiles, but has not been tested, though there should be few problems. Note, however, that a few of the programs no longer match the listings in The Art of Assembly Language because of library function name changes. Download the frozen version of HLA at the link given earlier if you wish to obtain the original code from the book (that will need to be compiled under the frozen version of the library).

Art of Assembly Sample Files, published edition (updated 12/26/2003)
Art of Assembly Sample Files, electronic edition (updated 12/6/2003)
Windows Programming in Assembly
(updated 12/26/2003).
The latest update includes new files to support Chapter Eight of "Windows Programming in Assembly Language"

Other Goodies (Windows Users):

Download a copy of Microsoft's MASM for use with HLA:
Download MASM32

Grab a copy of the official HLA debugger (OllyDbg):
Download OllyDbg 1.10 (updated Sept 15, 2004)

Get the latest version of the official HLA Integrated Development Environment:
Download RADasm IDE for HLA

Official RadAsm Site

Visit the "HLA IDE" (HIDE) official site:

Official HIDE site

Here are some documentation files (".hlp" files) for the RadASM environment (big download):
RADasm HLP Files