Win32 Programming for x86 Assembly Language Programmers

Welcome to the world of Win32 programming.
    That's right! It's not impossible to write a Windows program in assembly language.
    My focus here is on using the basic Windows system calls. You should know or learn from other resources how to write code for the Intel x86 processors (and compatibles). I have used the Intel syntax for machine instructions so the information here should be useful for those familiar with the MASM (by Microsoft) or the TASM (by Borland/Inprise) assemblers.
    I assume you have used Windows programs but I don't assume you have written a Windows program.

The core set of basic system calls is called the Win32 API (application programming interface).
    The Win32 API was once called the SDK interface because it was the original interface supported by Microsoft's Windows SDK (Software Development Kit). This was to distinguish it from the MFC (Microsoft Foundation Classes) interface created for C++. Microsoft now supports more than one SDK. The Win32 API is supported by the Platform SDK.

Example code has been tested on Win98 SE (second edition) with TASM 4.0 and the linker and libraries from VC++ 4.0.
    No attempt has been made to make these programs compatible with NT 3.xx. [See Win32 Platforms.]

Programming



Name change January 3 2001.
Updated February 5 2001.
Links updated February 7 2001
Comments and criticisms can be sent to Henry Takeuchi htak@eskimo.com.