If you're interested in this sort of thing there is one book you should read: Arm System on Chip by Steve Furber (original designer of the ARM)
http://www.amazon.com/ARM-System---Chip-Architecture-Edition...
It certainly was a revelation (all those registers!) after years of messing around with Z80/6502/80[123]?86.
http://www.reddit.com/r/compsci/comments/1r8izo/what_would_i...
I recently had to dig through tons of documentation just to get started and ARM is really bad at providing overview documentation. As an example: I quickly discovered that the Cortex-M doesn't really have 16 registers. You only get 8 general-purpose registers and 5 kinda-registery-quick-storage-locations, which only certain instructions can access. To this day I couldn't find a clear list of instructions that can access these high registers.
http://infocenter.arm.com/help/topic/com.arm.doc.qrc0006e/QR... is the Thumb 16-bit instruction set quick reference card, which seems to have a reasonable summary of which instructions have which register restrictions.
I was keen to learn ARM a year or two back and I was absolutely horrified at how dismal the documentation ARM provided was. I had problems even finding an assembler; and what I could find was pay-gated (with a price bracket too high as a personal improvement project). It's crazy that these platforms are toted as the future and yet the entry-level developer experience is by far the worst I have ever come across. Are they selling chips or are they selling manuals? /rant
Hopefully ntdebug continues the series.
http://www.eng.auburn.edu/~nelson/courses/elec5260_6260/ARM_...