why does mov a,a show an error but mov b,b doesnt give any error?
What "error", exactly, does it show?
Have you tried to relate that error to the definition of the instruction in the Instruction Set Manual...?