lets say, %eax has content 0x123 and 0x123 has content 0x987. and address 0xabc has content 0x100.
then, with movl (%eax), 0xabc,
won't 0x987 be moved as the content of 0xabc? why do we need another register to do this? i.e.
movl (%eax), %eax
movl %eax, 0xabc
Similarly, movl 0xabc, (%eax) won't it move 0x100 to the address of %eax i.e. 0x123?? do we need another register as well to perform this?