In a nutshell
An addressing mode is the rule for where an instruction's operand actually comes from. The value can be carried inside the instruction (immediate), sit in a register, live in memory at an address the instruction gives (direct), be reached through a pointer (indirect), or be found by adding an index register to a base address (indexed). Each mode is a different chain of lookups, trading speed for flexibility.