In This Article
What is Absolute Address?
An absolute address refers to the precise or fixed address in the memory of a computer system used by both the software programs as well as the hardware devices.
From a technical perspective, absolute address is the specific numerical value assigned to the specific locations in a memory, based on the contents of the register, to help in proper and easy identification.
- An absolute address is the fixed address in the memory and it is the term ‘absolute’ that differentiates it from the relative addresses.
- Absolute addresses are also known by different names and may represent a location on a hard disk drive or peripheral devices other than the memory.
- An absolute address is usually represented by the specific contents of the register.
- This address is called absolute because it does not have any relation with the present instruction address in the memory.
- These addresses are just numerical digits that can refer to bytes, sector numbers, and others and there is no universal rule to represent them.
Understanding Absolute Address
An absolute address denotes a specific location on the actual hard drive memory and helps in improving the performance of the memory and the computer system with its specific working principle.
Ideally, an absolute address is the product of calculating the effective address. It is different from relative address, which indicates the location with reference to the distance of it from another location.
An absolute address does not have any relation with the existing instruction address and is signified on the basis of the contents of a register of the memory.
In any hardware, there can be a number of absolute addresses, and each of them would be a reference with a unique value to a physical memory address. This can conceivably be the result of an address translation in some contexts.
Therefore, the multiple virtual addresses, for example, can be considered to map to a similar absolute address.
Then again, an absolute address refers to the identification of a location that is not subject to change due to address translation.
Usually, an absolute address denotes the memory location, but in some cases, it also signifies other things such as:
- An I/O device
- A machine register
With reference to a binary machine, an absolute address refers to the n-bit number. This specifies one of 2n locations.
The primary objective of the absolute address is to store data and information in a specific location from where it can be retrieved as and when needed in the future, most easily.
When a user wants to access a stored information and starts the process, the system starts looking for that particular data automatically at the address that was assigned previously.
However, the exact speed of operation to achieve the retrieval of data largely depends on other specific factors such as:
- The size of the address bus
- The power or bandwidth of the address bus
- The design of the particular hard drive
- The actual structure of the address itself
With the development in design and technology over time, the use of an absolute address has become more complex and sophisticated due to the design of the systems in order to accommodate it.
This is mainly due to a few specific reasons such as:
- The use of a wider variety of data.
- The use of more sophisticated and large programs to support the basic and essential functions of a system.
- The need for additional and precise storage space.
For this reason, in most of the systems available these days, both the absolute address as well as the relative address perform a wide range of search functions.
All these work in perfect harmony, as it is essentially required, for the proper functioning of the system, overall, and for the retrieval of data that is address-specific.
On the whole, the working process of the systems now typically involves the following:
- The absolute address now needs to relate to a particular position on the actual hard drive memory.
- The relative address, on the other hand, needs to relate to a location which is more generalized in the virtual memory.
In fact, the system design and configuration have even enabled it to use a relative address of the data stored in the memory of the hard drive in certain situations.
Absolute Address Example
An absolute address is basically the relocatable address translated by the loader. In this process, the loader adds the base address of a process stored in the main memory of the system to all logical addresses in order to produce the absolute address, and assigns a numerical value. If the base address changes, then the process is reloaded again.
For example, an absolute address can typically refer to a host of things such as:
- A specific location in the memory of the computer system
- An unambiguous identification of a hardware component
- A specific space or location within a peripheral device
Therefore, the absolute address represents the physical location of a record on a storage system, which may represent any of the following:
- The surface
- The specific track
- The particular sector
- The exact byte
Depending on the above, an absolute address is also known by several other alternative names, such as:
- A direct address
- A machine address
- A real address
The numerical value given to the absolute address can be of different types, as explained below:
- It can be the number of bytes that represents the location of it from the starting point of the memory of the storage medium. For example, 145 bytes.
- It can also be the number or a letter for a hard drive, represented as disk drive 3, for example.
- It can be the number of a sector of the physical location on a hard drive or a hardware component, represented as sector 25, for example.
This means that there is no universal or fixed representation of an absolute address with reference to the context.
Why Use Absolute Addressing?
There are several reasons to use absolute addressing. Typically, a few specific instructions in specific types of software need to use an absolute address in order to activate all of the hardware components in a computer system.
This is needed even though the actual action may have been begun through several layers of abstraction at a higher level.
In addition to the above, an absolute addressing mode is also an absolute necessity for others, such as:
- The Branch Conditional to Link Register instructions
- The Branch Conditional to Count Register instructions
They both need to use these addresses because of the specific attributes of the target address. Ideally, the target address can be characterized as follows:
- It is a specific register.
- It is not an input operand.
- It is the Link Register (LR) for the Branch Conditional to Link Register instructions.
- It is the Count Register (CR) for the Branch Conditional to Count Register instructions.
Typically, before starting to execute the Branch Conditional to Register instruction, all these registers need to be loaded.
An absolute address helps in identifying a location precisely and easily in the memory due to the unique number, which tells where exactly the data is stored.
With their varied features and functionality, the systems of today can function more precisely and properly when it comes to the following specific needs:
- Identifying an absolute address in real time
- Making faster data retrieval possible with almost zero delay
An absolute address helps in ensuring better performance in other types of computer functions as well. This is due to its diverse capabilities, which include but are not limited to the following:
- It can reduce the chances of potential damage to the hardware components.
- It reduces the chances of the programs that drive functions being compromised, which, if happens, can in turn, make the retrieval process much more difficult.
In addition to that, an absolute address also helps the systems experts in several instances. For example:
- It helps them to identify an issue along with the origin of the problem.
- It helps in identifying the components that need repair or replacement.
In short, the design and functionality of the absolute address allow the retrieval process to be precise, faster, and provide the right output at full capacity.
Absolute Address Vs Relative Address
- The absolute address typically signifies the physical storage location of the record, such as the byte, sector, track or surface. On the other hand, a relative address usually represents the number of bytes at the beginning of the file.
- Ideally, an absolute address cannot be stored on a file. On the other hand, a file may contain a relative address.
- The path of an absolute address specifies the location of a directory or file from the root directory and therefore starts with a slash (/). On the other hand, the relative address path refers to the current directory worked on and therefore never starts with a slash.
- An absolute address is usually used when referencing a webpage. On the other hand, a relative address is typically used to reference a file stored on the computer system.
- An absolute address is the fixed point in the memory, but in comparison, the relative address can change depending on the type of data, the structure of the data, how it is accessed, and the available memory.
- The absolute address can be considered to be the beginning and ending points of a portion of memory that is statically assigned.
- The absolute address is unique and represents a location that is not dependent on any other. On the other hand, the relative address is always with reference to something else.
- In absolute addressing, the address to fetch the operand is not calculated but is provided already in the address portion of the instruction. On the other hand, the relative address is usually calculated by adding the CPU Register contents to the address portion of the instruction.
- There are no specific types of memory address mode, but in comparison, there are three different types of relative address mode namely, PC Relative, Base Register Relative, and Index Register Relative addressing modes.
- The absolute addresses typically result in longer address fields within the instruction format because they need more bits to denote the whole memory address. On the other hand, the address field in the instruction format of the relative addresses is shorter since it can specify it with a smaller number of bits.
- An absolute address mode is usually not used for the branch type of instruction. On the other hand, a relative address is typically used with such types of instructions because the Program Counter is updated by it directly.
- The absolute address is used to access static data, but in comparison, the relative addresses are typically used to write codes that are not dependent on the position and relocatable codes, such as for program relocation during run time.
- An absolute address is used to represent variables. On the other hand, the relative addresses are used to implement records and array addressing.
- The absolute address modes are usually unable to handle recursive procedures, as opposed to the relative addresses.
- The absolute address mode is less preferred than the relative address mode because the latter reduces the size of the instruction fetch queue, program size and is also much easier to relocate.
- One significant advantage of the absolute addressing mode is that it is easy to use because there are no intermediaries involved for memory referencing. In comparison, more flexibility is the significant benefit offered by the relative addressing mode.
- On the other hand, the disadvantage of absolute address is its limitation of address space. In comparison, the significant drawback of the relative address mode is its complexity.
An absolute address, as you can see, is the unique number that allows a quick reference since it indicates the unique location in the address space with a unique number where an operand or instruction is stored or located and is to be found.
Therefore, it plays a very significant role in data access and system performance.