Absolute (Direct) Mode: The address of the operand is embedded in the instruction code.
$(i) \rightarrow \ (d)$
Displacement Mode: Similar to index mode, except instead of the index register a base register will be used. The base register contains a pointer to a memory location. An integer (constant) is also referred to as a displacement. The address of the operand is obtained by adding the contents of the base register plus the constant. The difference between index mode and displacement mode is in the number of bits used to represent the constant. When the constant is represented a number of bits to access the memory, then we have the index mode. Index mode is more appropriate for array accessing; displacement mode is more appropriate for structure (records) accessing.
$(iv) \rightarrow \ (e)$
Index Mode: The address of the operand is obtained by adding to the contents of the general register (called index register) a constant value. The number of the index register and the constant value are included in the instruction code. Index Mode is used to access an array whose elements are in successive memory locations. The content of the instruction code represents the starting address of the array and the value of the index register, and the index value of the current element. By incrementing or decrementing index register different element of the array can be accessed.
$(iii) \rightarrow \ (b)$
Register Mode: The name (the number) of the CPU register is embedded in the instruction. The register contains the value of the operand. The number of bits used to specify the register depends on the total number of registers from the processor set.
$(ii) \rightarrow \ (a)$