This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

I am very confused about @ # * in addressing mode

Dear, 

Now, I am a rookie about assembly language, I have a problem while I read the code.
I am very confused about the @ # and * in addressing, even if I had read a lot about assembly language tool and some manual. There are many such syntax however can I never finda context about the usage and concept about @ # * clearly. 

It really confused me, take a example

MOV [loc16],ARn

[loc16] = ARn;
If(loc16 = @ARn), then only the lower 16 bits of the selected auxiliary register
is modified. The upper 16 bits is unchanged.

The above is the statement.
The example is
MOV @AR4,AR3

; Load AR4 with the value in AR3.
; Upper 16 bits of XAR4 are
; unchanged.

Why not MOV AR4,AR3   ????
Because I had read that
MOV T,@VarA
before, I guess that all the CPU register are the same; however, I must be wrong.
I can't find a rule, please help me or give me a way to find the definition about them!

Thanks!!!
Maxwell :)