An assembly-level program
Having developed our computer a little further, in this section, we will show how a simple program is executed. Assume that this computer doesn’t provide three-address instructions (i.e., you can’t specify an operation with three registers and/or memory addresses) and we want to implement the high-level language operation Z = X + Y. Here, the plus symbol means arithmetic addition. An assembly language program that carries out this operation is given in the following code block. Remember that X, Y, and Z are symbolic names referring to the locations of the variables in memory. Logically, the store operation should be written STR Z,r2, with the destination operand on the left just like other instructions. By convention, it is written as STR r2,Z, with the source register on the left. This is a quirk of programming history:
LDR r2,X Load data register r2 with the contents of memory location X
...