1. Real memory - what you see is what you get

2. Statically loaded in an offset: 

        adjust operand addresses INSIDE the program

3. Dynamical address computation:

     a. load program in a fixed location
     b. Each address request from CPU (program AND operand address)
        is first added to OFFSET before sending it to memory

4. Paging: per page dynamical address computation