We had to create a CPU and program it for my undergrad, assembly turned out to be really easy to learn. I also found it really easy to program in, and my first program had no errors on first run (how rare!), but I think that's because it forces you to break it down into really small chunks, plus it was just an RPN calculator, nothing fancy.
I did enjoy it, and even wrote a toy compiler for it.
I did enjoy it, and even wrote a toy compiler for it.