IDEA has got to be the smallest working program I have ever seen of its kind. It’s just 448 bytes, yet this small wonder is able to encrypt and decrypt your sensitive files. The assembly language source code is included.
TheGun is a very small text editor for Windows that was written in assembly language. The result is a 6K executable program that works just about as well as Notepad. You can change the program’s settings using the companion SetGun program which saves the settings by patching TheGun’s executable file. Nothing is written to the registry or an INI file. This is a pretty impressive feat of programming.
Emu8086 is an 8086 microprocessor emulator that includes a built-in assembler. Also included are dozens of sample programs written in assembly language that are well-documented to help you understand how they work. A separate window shows what’s going on in the virtual processor as the program runs. It’s interesting and can be lots of fun for the technically-inclined.
Check out V2, an operating system created in assembly language. Needless to say, it’s extremely small but still has plenty to play with. You can download it and run it from a floppy disk or load it in your favorite PC emulator such as Bochs or VMWare Player. I tried loading this in Microsoft Virtual PC but the emulator freaked out at trying to load something that doesn’t adhere to the strict global standards that were formulated by Microsoft.
Years ago I studied assembly language at school but never quite got the hang of it. Nowadays, I’ve been feeling inspired enough to go back and study it again and perhaps even make a few programs in the process.
Most of my inspiration came from Steve Gibson of Gibson Research, who writes his programs in assembler. There’s a page on his site with links to assembly language resources on the Web along with his Small is Beautiful starter kit that includes a template for creating Windows programs in assembly language.
I got further inspiration from the late Phil Katz of PKZIP fame. He too was very proficient in assembly language and used it to create his famous PKZIP archiving tool.
For creating my programs in assembly language, I am going to use the Flat Assembler, which is free and open source. There are some cool sample programs included, including a very simple text editor and of course, the essential “Hello, World!” program whose executable program file size is only 3K.
To me, the best way to study a new programming language is to peek at the source codes of other programs and use snippets of their code to make my own programs. I am hoping this approach will serve me well in learning assembly language.