Tiny assembler programs tend to abuse arcane x86 instructions that have one or two byte encodings, but aren't practical for real use (and compilers don't emit them). Add some binary format tricks on top.
A little bit of assembly writing (and more importantly, reading) should be a part of a good CS curriculum but these tiny programs aren't a good place to start.