Most developers write most of their code using a high-level language such as C and C++. This high-level source code is then compiled to machine code which runs on a target device.

Sometimes, however, writing low-level assembly code has advantages. Perhaps you want to hand-optimize a critical algorithm to make it as fast as possible. Or perhaps you need to maintain legacy code that is already written in assembly. Or maybe you just want to learn more about the low-level operation of your code to understand more about how it works.

In all these situations, you will need to understand how to read and write Arm assembly code.