# ARM architecture

TODO

## Register usage

rSP = RSP
r10 = PSP
r9  = PS Top of Stack
r8  = A register

r0-r7 are generally free and used liberally across Dusk's ARM code. However, HAL
generates code that uses r0 and r1 as temporary values. Those values are never
used beyond the scope of a single HAL operation. Therefore, if you mix and match
HAL and assembler, you don't have to preserve r0 and r1 in between HAL
operations. However, you can consider that all HAL operations destroy these
registers.
