Direct adressing, is when we put direct address in comand, but indirect when we addressing by other register (or variable from memory). Indirect adressing is using for acess to strings, arrays, elements of structures, with changing address by "loop" or "cycle"(like for(); while() ....).