Home Teaching Glossary ARM Processors Supplements Prof issues About

The ARM


We have used the ARM processor family as a vehicle to introduce the instruction set architecture in Computer Organization and Architecture:Themes and Variations. This page provides links to material on the ARM family of microprocessors. In particular, we concentrate on the ARM's architecture and assembly language programming.


ARMs for the Poor is a paper I wrote for an FIE conference on education and discusses the advantages of using the ARM family as a means of illustrating processors in computer architecture courses.


ARMs for the poor


Computer Architecture and Organization uses the ARM to introduce instruction set architectures. In order to provide students with hands-on experience, we use a simulator that is available from Keil as an educational version of a professional set of tools at the magic academic price of free. Using the Keil Simulator explains how to get started with this software.


Using the Keil Simulator


I have written a student handbook to accompany lab sessions for those using Computer Architecture and Organization. This handbook provides a series of exercises and examples on programming the ARM and using the Keil simulator. It can be downloaded by clicking on the “ARM Student Handbook”.


ARM Student Handbook


The material in “Basic ARM programming” is intended as an absolute introduction to writing programs for the ARM and running them with the Keil simulator.


Basic ARM Programming


One of the most important operations in assembly-level programming is the creation of stack-frames and their use in parameter passing. The following example, ARM Frame Example” demonstrates how a stack frame is set up and used.


ARM Stack Frames


A common data structure is the linked list in which an element in a list points to the next (or previous) element ion the list. We introduce linked lists because they provide an opportunity to exploit register indirect addressing.


ARM Linked Lists


Some readers will be taking a course based on the ARM but have come from the MIPS world; for example, they may have taken a prior course that used a MIPS processor. The following article discusses some of the differences between the MIPS and ARM instruction set architectures from the point of view of the assembly language programmer.


MIPS to ARM