filmov
tv
Hello, Assembly! Retrocoding the World's Smallest Windows App in x86 ASM
Показать описание
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:
Link to Code:
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!
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:
Link to Code:
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!
Комментарии