ALU operands come from registers, not memory. Load and store instructions move data between registers and memory.
In this way, registers are more "temporary" than memory. In order to operate on two numbers from memory, we would have to load them both into different registers.