Note: Since I originally wrote this post, it looks like the website where DroidBattles was being hosted no longer exists. There appear to be similar projects around which may or may not be related (I haven’t had time to check). For example, here and here.
OK, so it’s not exactly a ‘real’ assembly language, but DroidBattles seems to be an awesome bit of software anyway. The concept is really very simple — you program ‘bots’ (or droids) using an assembler-style language, and pit them against each other in an arena.
You start by selecting which components your bot will use, including CPUs, engines, armour, weapons, scanners, and so on. You then code it all up using the built-in language, assemble it, and you’re ready to go. The simple quick-start tutorial is a great starting point, showing you how to create a simple bot that goes in circles and shoots whenever something is in front of it.
The graphics are very basic, but certainly sufficient, so I’d recommend it as a fun way to help people learn more about assembler programming.
(I’m running it on Linux, but apparently it works on Windows too.)