TL; DR - r0 и r1 будут содержать одно и то же значение, но только из-за инициализации в первой строке
Давайте разберем это, инструкция за инструкцией:
pointr: .word pointr
Это означает, что «определите метку с именем« указатель »в адресе X и поместите значение метки (в данном случае X) в этот адрес». Таким образом, в адресе X есть слово, содержащее значение X.
mov #pointr,r0
Это означает «переместить значение метки 'pointr' (в данном случае адрес X) в r0". Таким образом, r0 будет содержать значение X, потому что 'pointr' является меткой для этого адреса.
mov pointr,r1
Это означает «переместить значение, которое находится в адресе метки 'pointr' (в данном случае также X) в r1". Таким образом, r1 будет содержать значение X из-за части «.word pointr» первой строки в коде.
Чтобы уточнить, если мы должны заменить первую строку кода, чтобы получить:
pointr: .word pointr+2
mov #pointr,r0
mov pointr,r1
значение r0 не изменится (по сравнению с исходным кодом), но значение r1 изменится.