I bought a $100 assembly cartridge, ah the Good Times
Hehe, I have that.

Edtasm+ was cool. I got it on special with the book "TRS-80 Color Computer Assembly Language Programming".
The book is beside me on a shelf, between C How To Program and Amiga Basic.
I need to update my shelves some time.
What the hell? I've got a Mad magazine on my shelf. Where did that come from? I haven't read one for at least a decade, and I didn't really like them then either. What other weird stuff is on here?
- 1984 guiness book of records
- my mother's highschool maths and chemistry textbooks
- a bunch of d&d books (last used about 18 years ago)
- the 1983 doctor who technical manual (hmm, could be handy if I want to model a tardis)
- a return of the jedi / pauls ice cream competition poster (wtf?)
- my old graph book filled with my attempts at sprite art (from the trs-80 days. I should scan some of this.)
- a hundred or so copies of The Elite Against All Odds military magazines (unread, I just looked for cool helicopter pictures)
And a ton more crap.
Ok, sorry, back to assembly.
But I don't subscribe to "every programmer should know some assembly"
Then you really aren't going to like it when I say every programmer should know some digital electronics (it makes assembly language make more sense).
ARM assembly is pretty freaky. It's both big and little endian at the same time. If you read a 16 or 32 bit number from an even address, it's one style (can't remember which), if you read from an odd address it goes backwards in memory and reads it as the opposite style. If you jump to an even address, it runs in 16 bit Thumb mode, if you jump to an odd address it masks it to an even address and switches to 32 bit ARM mode. This made it very easy to mix arm and thumb code in one program, no explicit mode change code is needed, the address of a function determines which mode to use to execute it. ANother cool feature is that almost all instructions can have conditional execution. They can test (and even change) the condition flags, the instruction only executes if the flags match the requested state.