The WAM model assumes a tagged memory model. This means that memory locations are 'typed', i.e. that it is possible to tell which datatype is in the memory location. Since registers have neither tags nor addresses, with these it is only possible to handle references (or at most constants) but it is impossible to represent free variables, structures or lists directly. The tagged memory is handled by the following tags:
The memory layout is shown in table 1. At the top are the low addresses, increasing downwards.
Table 1: The memory layout of the local and global stacks