Windows Assembly Language Programming

 

Welcome!

This area on Webster is dedicated to Win32 assembly language programming topics. Specifically, this section deals with the Win32 API, HOWL (the HLA Object Windows Library), and GUI-based programming in assembly language.

 

   

Windows Programming in Assembly Language

  Several years ago, Randy Hyde began translating Charles Peztold's "Windows Programming" into assembly language. This book teaches Win32 GUI application programming using the Win32 API. For copyright reasons, plus the fact that the material was just not the right way to write Win32 assembly code, Randy abandoned that project. However, the first several chapters are available on-line and still provide a great reference for programmers who want to write low-level Win32 code.

Preview the PDF or HTML versions of this new book by clicking on the links to the right.

PDF Edition (Best and fastest)
 
 
HTML Edition
 
         

Randy Hyde's Windows Programming Tutorial

   
 

HOWL (HLA Object Windows Library) has arrived! HOWL makes Win32 assembly language programming easier than ever before. By providing an "Application Framework" (much like Microsoft's MFC or Borland's VCL), HOWL takes care of all the grunt work required by low-level Win32 API programming and lets you concentrate on writing your applications.

This is the right way to write Win32 GUI applications in assembly language.

Note that the tutorial source code is available as part of the HLA Examples download (get it here). If you're going to work through these tutorials, you should download the entire HLA examples zip file. You'll find the HOWL examples in the win32\howl subdirectory.

Also note that the HOWL documentation is part of the HLA Standard Library documentation. You can find the HOWL documentation here.

The example source files to the right generally appear in pairs: a "standard" version and an "x_*" version. The standard version uses the HOWL Declarative Language (HDL) to define all the widgets (controls) on a form (window). Those with the "x_" prefix eschew the HDL and make manual calls to the HOWL library code. The tutorials mainly discuss the standard versions of these sample programs; those who are interested in seeing the lower-level implementation of the code might want to take a peek at the "x_*" versions of these applications.


1:Hello World
This tutorial teaches the basic principles behind creating, compiling, and running a HOWL application.


2: Buttons
This tutorial teaches you how to use Push Buttons in a HOWL application.


3: Check Boxes
This tutorial teaches you how to use Check Box buttons in a HOWL application.


4: Radio Buttons
This tutorial teaches you how to use Radio Button sets in a HOWL application.


5: Labels
This tutorial teaches you how to place static text objects on a form in a HOWL application.


6: Menus
This tutorial teaches you how to add menus to a form in your HOWL application.


7: Graphic Objects

This tutorial teaches you how to draw various graphic objects on a form including rectangles, round rectangles, pie wedges, ellipses and circles, and polygons.

This tutorial also teaches you how to overlay various graphic objects using a transparent background color and how to create clickable graphics objects. It demonstrates how to move, resize, show/hide, and change the color of these graphic objects.

 

1: Hello World  
    tutorial  
    helloworld.hla  
    x_helloworld.hla  
  2: Buttons  
    tutorial  
    button1.hla  
    x_button1.hla  
    button2.hla  
    x_button2.hla  
    button3.hla  
    x_button3.hla  
  3: Check Boxes  
    tutorial  
    checkbox1.hla  
    x_checkbox1.hla  
    checkbox2.hla  
    x_checkbox2.hla  
    checkbox3.hla  
    x_checkbox3.hla  
    checkbox4.hla  
    x_checkbox4.hla  
  4: Radio Buttons  
    tutorial  
    radioSet1.hla  
    x_radioset1.hla  
    radioset2.hla  
    x_radioset2.hla  
    radioset3.hla  
    x_radioset3.hla  
  5: Labels  
    tutorial  
    label1.hla  
    x_label1.hla  
    label2.hla  
    x_label2.hla  
  6: Menus  
    tutorial  
    menu1.hla  
    x_menu1.hla  
  7: Graphic Objects  
    tutorial  
    graphics1.hla  
    x_graphics1.hla  
    graphics2.hla  
    x_graphics2.hla  
    graphics3.hla  
    x_graphics3.hla  
    graphics4.hla  
    x_graphics4.hla  
    graphics5.hla  
    x_graphics5.hla  

 

Win32 API Documentation Project

Got Ink?

You'll need it! The following files contain the documentation for the Windows API gleened from the MSDN system and organized for those who prefer to read manuals rather than point and click. Be forewarned, these files are rather long.

Note that as of HLA v1.40, the win32 API declarations are now a part of the HLA distribution (both the header files and the documenation are included with the HLA download). The following documentation is now intended for use by individuals who wish to utilize this information with other assemblers.

Iczelion Tutorials

The following are some of the reknown Iczelion win32 tutorials with their text and code updated for HLA (the original tutorials used MASM). Check back here frequently because new translations will appear on a regular basis.

Note: because of changes in the HLA language over the past two years, it's not a good idea to enter the HLA code that appears in the following documents. Instead, download the HLA source code (the zip file) and work from that. The source code for the Iczelion Tutorials (converted to HLA) can be found on the HLA download page.