> move D1, A1 implies A1 is now not pointing to memory location 1000
> but instead is pointing to memory location containing 50
No, A1 is now pointing to memory location 50
> move D1, (A1) implies memory location 1000 is set to contain 50. is 1000 the address or the contents?
Memory location/address 1000 contains the value/has contents 50. There is a 50 stored at address 1000.
move d1,(a1) // stores 50 at 1000
move d1,(a1) // stores 1000 at 50
move d1,(a1) // stores 1000 at 1000
Probably the best bet is to download an emulator and watch how memory is affected by simple code examples like the above. If you restrict all values to, say, less than 25, and the emulator has RAM at addresses 0-25, then you should be able to keep track of everything without taking up too much screen space or getting confused scrolling from one area to another trying to find the value.