What is the difference between Register Addressing mode and Direct Addressing mode(8051)?
It could be confusing since the 8051 has memory mapped registers. So each register is also accessible at a memory address. In fact the 8051 registers simply are memory cells, with shortcuts.
However the difference is huge:

Register addressing point directly to a register. No memory address involved. You say R5, you go straight to R5

Direct addressing point to a RAM address (only the 256 byte internal one, not XRAM). You say cell 42h, you go to cell 42h


The confusion happens because you can say 'write to cell 05h'. And you are actually writing to R5 (in register bank 0). This characteristic is in fact extremely useful because the 8051 can't transfer directly between two register, but only between a register and a memory cell.