Difference Between Direct and Immediate Addressing Modes

An addressing mode is basically a technique used for determining the operand that associates with any given instruction. A multiprocessor mainly functions to execute all the instructions in a group (that their memory stores) in order to conduct any specified task. Immediate and Direct addressing modes are two major modes that specify in which way one can access data and information from given memory (when they execute their instructions). 

Direct Address Mode − In this mode, the effective address is equal to the address part of the instruction. The operand resides in memory and its address is given directly by the address field of the instruction. In a branch-type instruction, the address field specifies the actual branch address.

Immediate Mode − In this mode, the operand is specified in the instruction itself. In other words, an immediate-mode instruction has an operand field instead of an address field. The operand field includes the actual operand to be used in conjunction with the operation determined in the instruction. Immediate-mode instructions are beneficial for initializing registers to a constant value.

Direct Addressing Mode

  • Direct addressing always requires a reference to the memory.
  • It contains an operand’s effective address in the very addressing field.
  • Direct addressing mode is comparatively slower than the immediate mode.
  • It has a wider range as compared to the immediate mode.

Immediate Addressing Mode

  • Immediate addressing does not require any reference to the memory.
  • It lacks an addressing field. It is because the operand becomes an effective part of the instruction in this case.
  • Immediate addressing mode is comparatively faster than the direct mode.
  • It has a very limited range as compared to the direct mode.

Direct Addressing Mode vs Immediate Addressing Mode

Direct Addressing ModeImmediate Addressing Mode
Address fields contains the effective address of operandThere is no address field as the operand is a part of the instruction.
It requires one reference to memory.It does not require any reference to memory.
It is slower compared to immediate mode.It is a faster process.
It has more range than in immediate mode.It has a limited range.
Example: Add (1001)Example: ADD 5