“When we write MOV #1000 , it means we are writing the value 1000 into the accumulator.”
Who decides this? This is typically defined in the Instruction Set Architecture. Some ISA can define a different meaning for “#”.
“MOV 1000” – not sure which ISA had this instruction. x86 instruction set has “MOV R,1000” where 1000 refers to any memory location and R any register.
“register or MM” – a register is not having any address. But on a system with virtual memory address need not be of main memory – it’ll be the virtual address which can be mapped to MM, disk or any of the IO device.