Hello, Assembly! Retrocoding the World's Smallest Windows App in x86 ASM
Dave's Garage Dave's Garage
667K subscribers
455,184 views
0

 Published On Premiered Mar 22, 2021

Dave builds the World's Smallest Windows application live in x86 assembly using only a text editor and the command line to assemble the program using the Microsoft MASM assembler.

Whether you're a professional programmer or just curious about how assembly language works, what makes it different from machine language, and why it can be faster and smaller than C you won't want to miss it! Take your Windows Programming to the next level. Or the previous level, depending on how you look at it!

Link to Mug:
https://daves-garage-store.creator-sp...

Link to Code:
https://pastebin.com/Pmvr4r1S

Thanks in part to a suggestion by 'SonicMouse' that I merge linker sections, the current binary size is 1488 bytes... and yes, it runs exactly the same.

0:00 Start
1:31 Assembly Language vs Machine Language
2:24 Machine Language Monitors
3:22 Hello, Windows!
5:10 Dave's Garage Mug
5:30 Task Manager Enamel Pins
6:04 Editor Sequence Start
10:15 Includes, Libs, Constants, Data
12:00 Main Entry
13:30 ShowWindow
15:11 WinMain
17:10 WindowClass
21:37 WndProc
26:15 Command Line
28:08 Running the App
28:30 Closing Thoughts


Environment: Windows 10 2H02, MacOS 11.2.2
GNU Nano Editor
Microsoft MASM SDK

PS: For anyone keeping score, two things are certain: (a) it can always be smaller, and I'm down to 1488 bytes now, and (b) Steve Gibson has likely forgotten as much about x86 assembly programming as I know :-). Thanks for the recent shoutout on the podcast!

I realize you can make a much smaller app by simply calling MessageBox, but that's why I outlined what I deem to be the "minimum functionality". SonicMouse has come the closest so far at 1776!

show more

Share/Embed