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
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
- The very beginnings
- Some fundamentals
- Message loops
- GUI topics
- Non-GUI topics
- Other topics
Updated February 5
Links updated February 7
Comments and criticisms can be sent to