Different Addressing Modes of 8051:
Immediate addressing is so-named because the value to be stored in memory immediately follows the operation code in memory. That is to say, the instruction itself dictates what value will be stored in memory.
E.g. MOV A,#20h
Direct addressing is so-named because the value to be stored in memory is obtained by directly retrieving it from another memory location.
E.g. MOV A,30h
Indirect addressing is a very powerful addressing mode which in many cases provides an exceptional level of flexibility. Indirect addressing is also the only way to access the extra 128 bytes of Internal RAM found on an 8052.
E.g. MOV A,@R0
External Memory is accessed using a suite of instructions which use what I call "External Direct" addressing. I call it this because it appears to be direct addressing, but it is used to access external memory rather than internal memory.
E.g. MOVX A,@DPTR
External memory can also be accessed using a form of indirect addressing which I call External Indirect addressing. This form of addressing is usually only used in relatively small projects that have a very small amount of external RAM.
E.g. MOVX @R0,A