Memory comes with two general categories, each representing a particular view of how memory should organize. The "absolute" mapping of memory gives a unique identification to each location in memory. This designation of memory makes mapping data to memory addresses much easier for humans. However, for machines, a "relative" mapping helps mitigate some of its capabilities by creating mathematical offsets to access data.
A computer stores the data of running programs in main memory for quick access. This allows the computer to run multiple programs at the same time. To gather data when it is required, the computer must know the address of the data in main memory. However, early computers did not have the space available to store longer addresses in processor registers. Therefore, an offset scheme was introduced to give processors a way to address large blocks of memory with limited addressing space.
Relative and Absolute Addressing
Memory Addressing and Register Size
The reason memory addressing take on a relative aspect inside the computer has to do with register size. A "register" is a location in the processor that holds a value. In memory access, a register will hold an address of a location in memory. However, register sizes are limited: a 16-bit register can only hold 16 binary digits, for a maximum positive value of 65,536. This means a 16-bit register can only address 65, 536 locations in memory. Often, memory represents many more data addresses than this. To deal with this issue, a memory offset system was developed.
This scheme, called "segment:offset" addressing, allowed smaller registers to address higher addresses in memory. The way segment:offset addressing refers to an absolute address is by taking a segment value, multiplying that number by 16, and adding an offset. This process allows the addressing of higher values in memory by offsetting a value beyond the maximum value of the register. Interestingly, many different segment/offset combinations can refer to a single absolute address.
The High Memory Area
The first 65520 bytes of memory after "real" physical memory is called the "high memory area." This area of memory is the only part of extended memory that the computer can access while in "real" mode. Real mode limits memory access of the processor to "real" data accessible through direct address, determined by address size. MS-DOS programs, which originated in the days of 8- and 16-bit computing, often use this processing mode for backwards compatibility.