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
...