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, Mac OSX, and FreeBSD Installation Guide

Current Version: HLA v1.103

HLA v1.103 is a maintenance release correcting several defects introduced during the rewrite of HLA v1.102. The main new feature added in this version is the ability to automatically link in the C standard library under Mac OSX, FreeBSD, and Linux (required for the HLA stdlib sockets library and planned library modules). Added the "-nolibc" command-line option to disable automatically linking in the C standard library to eliminate namespace pollution problems, should they occur (available only under Linux, MacOSX, and FreeBSD).

HLA v1.102 is, perhaps, the biggest rewrite of the HLA system since it was first created. The code generator was completely rewritten and over half the compiler/parser was rewritten. v1.102 now supports Mac OSX in addition to Windows, Linux, and FreeBSD. v1.102 also ships with v4.0 of the HLA Standard Library. The number of changes are far too drastic to list here, but the highlights include the following:

  • Support for Mac OSX
  • Switch..case..default..endswitch is now supported in the HLA language rather than implemented as a macro (two orders of magnitude faster compilation times!).
  • Support for NASM source output (Windows only at this time).
  • Gas output is now in AT&T syntax rather than using Gas' .intel_syntax format.
  • Most instructions are compiled directly to hexadecimal opcodes (rather than into an intermediate source form).
  • New "-sourcemode" command-line option that tells HLA to translate HLA source code into human-readable source code for some other assembler (versus hexadecimal opcode output mode).
  • Source code output (when using "-sourcemode") has been dramatically cleaned up in order to make HLA output more readable.
  • New "-sh" command-line option (which implies "-sourcemode") tells HLA to emit a low-level HLA source file. Great for seeing how the compiler expands macros, HLL-like control structures, and other expansions during compilation.
  • Makefiles under all OSes have been improved. You can now build the entire HLA system under any OS, not just Windows.
  • A new test suite has been created to dramatically improve the quality of the HLA system.
  • Hundreds of preexisting defects have been corrected.
  • The documentation has been updated.

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.

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.103, released 8/11/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.103, released 8/11/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.103, released 8/11/2008)
The linux.hla.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

Mac OSX Users:

HLA for Mac OSX (HLA v1.103, released 8/11/2008)
The mac.hla.tar.gz file contains the binaries, includes, and library files for Mac OSX. Please read the HLA installation guide to install these files under Mac OSX.

Note: The frozen version does not support Mac OSX.

HLA Executables for Mac OSX

FreeBSD Users:

HLA for FreeBSD (HLA v1.103, released 8/11/2008)
The bsd.hla.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 frozen version does not support FreeBSD.

HLA Executables for FreeBSD

For Everybody:

HLA Documentation (updated 8/11/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)
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 8/11/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 v4.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 v4.1 (Updated 8/11/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, Mac OSX, 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.103, released 8/11/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