Assembly code example arm

Originally this was a pet project of mine that was going to follow the progress of the popular game, Human Resource Machine. However, after working out the exercises, I noticed that there was a lot of redundancy because of the fundamental difference of architecture. From there I started trying to figure out how to structure this course.

Since the ARM architecture is a reduced instruction set computer (RISC), there are only about 30 operations that the main processor understands. What I ended up doing was listing them out, grouping them by function, and designing a better set of exercises that explored all of the operations.

Within the exercises, I wanted to discuss some general concepts and how they relate to the assembly world. I tried to visit some important concepts that apply to all programming such as negative numbers and using bit logic to save processing cycles.

I don’t intend for this to be an “authoritative guide to all things ARM assembly,” but rather a set of exercises and lessons that will allow you to start your journey getting closer to the bare metal. While much of this information could be used for embedded programming, there is a short section that is dedicated to interacting with a Linux operating system specfically.

Requirements #