This tutorial paper presents some optimisation techniques for programming with ARM processors, addressing both memory (footprint) and execution time optimisation. For purposes of illustration, the ARM7TDMI is chosen as a representative of the ARM family. The 32-bit ARM instruction set is chosen as the vehicle to convey various optimisation techniques while programming references to the 16-bit Thumb instruction set are minimal.

The tutorial does not assume prior knowledge of the ARM architecture. Experience in programming with any RISC assembly language makes understanding easier, though.