Здравствуйте, так получилось, что на C/С++ для АВРов начал писать раньше, чем на АСМе. Теперь не совсем понятно как корректно работать с переменными в SRAM.
Если на С задачу копирования адреса я решал так:
Код
unsigned char *ptr1, *ptr2;
ptr2 = ptr1;
и копирование значения (как вариант):
Код
unsigned char *ptr1, *ptr2;
*ptr2 = *ptr1;
то как такие задачи решаются на АСМе?
если написан следующий код:
Код
Tmp1: .byte 1
Tmp2: .byte 1
.....
lds r16,SPDR ;для примера взят регистр SPI
st Z+,r16
lds Tmp1,ZH
lds Tmp2,ZL
то что значат последние две строки кода: что я копирую значения старшего и младшего байтов регистра Z или что я копирую новый адрес ячейки памяти, на которую указывает Z после постинкремента?
Вобщем хотелось бы знать как в АСМе скопировать адрес и как скопировать значение.
Надеюсь корректно описал вопрос.