32-bit Linux Edition Featuring HLA

Web Site Hits Since
Jan 1, 2000
Last Updated On
Tue, Sep 17, 2002

WEBster
NAVIGATOR


Webster Home
HLA Page
DOS Assembly
Assembly Links
Christian Resources
HLA Basic
RatC for C / C++ Programmers
Software Engineering


This site is maintained by Randall Hyde. Comments and suggestions should be sent to rhyde@cs.ucr.edu


This site is always ad free!

Welcome! The Art of Assembly Language Programming is now available in a special edition for Linux. This edition employs the HLA (High Level Assembler) language that makes learning assembly language easier than ever before. If you're comfortable with C/C++ or Pascal, you'll be writing assembly in no time.

The document is available in several forms:

  • The entire text is available as a single PDF/ZIP file for download optimized for printing at 600 DPI.
  • Individual chapters are available for on-line viewing or download. 96-DPI screen resolution versions are available.

Hopefully, one of these formats is perfect for you. If you intend to print all or part of the text, you should download a printer resolution version. It will display on the screen just fine (maybe a little slower). The screen-optimized version, on the other hand, produces a low-resolution print-out and is generally not acceptable for printer output; however, it downloads a bit faster when you're interested in looking at an individual chapter.

Note that the entire book consumes about seven megabytes while the individual chapters consume about 200K-500K each (on the average). It is far more cost-effective to download the entire text and view it off-line than to read the text on-line; the individual chapters are really intended for those who need to look up one thing quickly on-line or have a high-bandwidth connection to the internet (i.e., a typical user will want to download the entire book in one chunk).

The software for this text is available from the HLA page on Webster. To use this text you will need to download the HLA compiler (executables) and the example code. The AoA software appears in the Examples module. Of course, you'll probably want to download other HLA modules as well, but these two are the minimum you'll need for use with AoA. See the link below to grab the software associated with this text.

Download Software Associated with HLA/Linux Edition

To read the PDF documents you will need a copy of Adobe Acrobat 4.0. You may obtain a copy at http://www.adobe.com.

Note: file sizes are approximate and may vary as I update various files (and forget to update this page).

Download the Entire Text in PDF/ZIP Format

AoA Optimized for Printing (600 DPI)

Download the full text (4.2 MB)

ZIP File

Individual Chapters in PDF Format for On-Line Viewing

AoA Optimized for On-Line Viewing

Read or Download Individual Chapters
Note: to read one of the following chapters simply click on the link.

To Download:

IE and AOL users: Right click on link.

Netscape users: Hold the shift key and click on the link

Mac users: Hold the option key and click on the link


Table of Contents and Index
Short Table of Contents (44KB)
PDF File
Full Table of Contents (408KB)
PDF File
Index (724KB)
PDF File

Volume One - Data Representation (40K)
Chapter One: Foreward (60K)
PDF File
Chapter Two: Hello, World of Assembly (316 K)
PDF File
Chapter Three: Data Representation (304K)
PDF File
Chapter Four: More Data Representation (284)
PDF File

Volume Two - Introduction to Machine Architecture (28K)
Chapter One: System Organization (164K)
PDF File
Chapter Two: Memory Access and Organization (340K)
PDF File
Chapter Three: Introduction to Digital Design (336K)
PDF File
Chapter Four: CPU Architecture (244K)
PDF File
Chapter Five: Instruction Set Architecture (212K)
PDF File
Chapter Six: Memory Architecture (164K)
PDF File
Chapter Seven: The I/O Subsystem (188K)
PDF File

Volume Three - Basic Assembly Language Programming (28K)
Chapter One: Constants, Variables, and Data Types (216K)
PDF File
Chapter Two: Character Strings (176K)
PDF File
Chapter Three: Characters and Character Sets (204K)
PDF File
Chapter Four: Arrays (172K)
PDF File
Chapter Five: Records, Unions, and Namespaces (156K)
PDF File
Chapter Six: Dates and Times (144K)
PDF File
Chapter Seven: File I/O (188K)
PDF File
Chapter Eight: Introduction to Procedures (224K)
PDF File
Chapter Nine: Managing Large Programs (144K)
PDF File
Chapter Ten: Integer Arithmetic (216K)
PDF File
Chapter Eleven: Real Arithmetic (412K)
PDF File
Chapter Twelve: Calculation Via Table Lookup (152K)
PDF File
Volume Four - Intermediate Assembly Language Programming (28K)
Chapter One: Advanced High Level Control Structures (180 KB)
PDF File
Chapter Two: Low Level Control Structures (428 KB)
PDF File
Chapter Three: Intermediate Procedures (348 KB)
PDF File
Chapter Four: Advanced Arithmetic (436K)
PDF File
Chapter Five: Bit Manipulation (220 KB)
PDF File
Chapter Six: String Instructions (120 KB)
PDF File
Chapter Seven: The HLA Compile-Time Language (164 KB)
PDF File
Chapter Eight: Macros(272 KB)
PDF File
Chapter Nine: Domain Specific Languages (436 KB)
PDF File
Chapter Ten: Classes and Objects (408 KB)
PDF File
Chapter Eleven: The MMX Instruction Set (280 KB)
PDF File
Chapter Twelve: Mixed Language Programming (328 KB)
PDF File
Volume Five - Advanced Procedures (28K)
Chapter One: Thunks (208 KB)
PDF File
Chapter Two: Iterators (200 KB)
PDF File
Chapter Three: Coroutines (100 KB)
PDF File
Chapter Four: Low Level Parameter Implementation (240 KB)
PDF File
Chapter Five: Lexical Nesting (184 KB)
PDF File
Appendices
Appendix A: Solutions to Selected Exercises (20KB)
N/A
Appendix B: Console Graphic Characters (24KB)
PDF File
Appendix C: HLA Programming Style Guidelines (264KB)
PDF File
Appendix D: The 80x86 Instruction Set (224KB)
PDF File
Appendix E: HLA Language Reference (16KB)
N/A
Appendix F: HLA Standard Library Reference (16KB)
N/A
Appendix G: HLA Exceptions (52KB)
PDF File
Appendix H: HLA Compile-Time Functions (224KB)
PDF File
Appendix I: Installing HLA on Your System (192KB)
PDF File
Appendix J: Debugging HLA Programs (60KB)
PDF File
Appendix K: Comparison of HLA and MASM (16KB)
N/A
Appendix L: Code Generation for HLA High Level Statements 104KB)
PDF File
Currently this is a special BETA edition of the text. That means that you can expect to find several glitches in this document. Mostly they will be typographical errors or poorly worded sentences, but a few technical errors have probably found their way into the text as well. Note that all full programs appearing in this text have been compiled and tested, so hopefully you won't run into many code examples that fail to work.

Those who are familiar with the DOS/16-bit version of AoA will notice some similarities. About a third of the material found in this version was taken from that older version and enhanced/updated for HLA/Win32. The rest of the material is brand new. Hopefully you will enjoy the new material as much as thousands of readers have liked the old version of AoA.

If you find any problems in the text, I would appreciate a notification of the problem. I request that you cut and paste the paragraph(s) in question and email it to me at the following address with a brief description of the problem.

rhyde@cs.ucr.edu

Please put "AoA Correction" in the message title so the message will receive appropriate consideration. Due to the volume of email I receive daily, I regret that I cannot guarantee that I will respond to all emails.

General questions about HLA, AoA, and Win32 assembly language programming should be posted to either the comp.lang.asm.x86 or alt.lang.asm newsgroups. I frequently check these newsgroups and reply to questions posted there. Sending your programming questions to one of these newsgroups is far more considerate than a simple email as other may benefit from the response and I can often avoid answering the same question over and over again. Your kind consideration of this matter is greatly appreciated.

There is an HTML version available, and the downloads are smaller. However, the HTML formatting is not very good and the text is more difficult to read (not to mention that the formatting errors create some technical errors in the code). If you must use HTML rather than PDF, click here.