It used to be that we had to work from the bottom up. The CPUs were too slow to afford the luxury of writing OS or hardware driver code in any other way. I'm an old hand at writing ARM assembly, from way back in the day - Acorn Computers development (in the UK) of their original VLSI before the days of ARM Ltd. :D
MIPS looks interesting and quite different to ARM....great stuff.
RE: Programming - Assembly Basic Coding Structure