Тогда так можно обращаться и к регистрам периферии.
Если всё в МК адресуется в одном регистровом файле, то тогда наверное можно.
Ну, при всём уважении, такие вещи надо в документации производителя читать.GP1 писал(а):Регистры могут адресоваться так же как RAM кто не верит к DiHalt-у
Код: Выделить всё
add 16, 18Код: Выделить всё
add R16, R18Код: Выделить всё
#define TMP 16
#define VAL 18
add TMP, VAL
adc TMP+1, VAL+1
push TMP
push TMP+1Код: Выделить всё
.equ ram=0x1 ;0х1, 0х2
.equ ram1=0x3;
Код: Выделить всё
ldi YH,2;пишем в СРАМ начиная с адреса 0х2000
clr work
ldi r28,ram;установка адресса массива А
st Y+,work;L
st Y+,work;H
st Y+,work;
st Y+,work;
st Y+,work
st Y,workКод: Выделить всё
ldi YH,2;пишем в СРАМ начиная с адреса 0х2000
ldi r28,ram;установка адресса массива А
ld work_H,Y+
ld work_L,Yavreal писал(а):Я так понимаю, нужно именно это, чтобы в коде (в макросах) обращаться не к TMPL/TMPH, а к TMP, TMP+1
Gudd-Head писал(а):Обозвать r25 как 'tmpL'?

Engineer_Keen писал(а):А почему нет?
Gudd-Head писал(а):Engineer_Keen писал(а):А почему нет?
А более изящного способа нет? Например, обозвать tmp как 16-ти битный регистр, размещённый в r24 и r25 можно как-нибудь?
Rimsky писал(а):Я обычно пользуюсь регистровыми парами X, Y. Z
GP1 писал(а):Давно бы взял да проверил, и нам рассказал что получилось, а что нет.
Gudd-Head писал(а):Если у меня задефайнен, например, R16 как TMP, могу ли я обращаться к следующему регистру (R17) как-нибудь через "TMP+1"?
GP1 писал(а):попробуй обозвать r24 как-нибудь, и обратись как регистровой паре, если прокатит - значит все гуд, ну а если нет - то звиняйте...
Gudd-Head писал(а):... Я и без дефайнов могу оперировать "голыми" r24, r25, r26 и r27, держа в голове за что каждый регистр отвечает. Заодно и память потренирую
GP1 писал(а):Gudd-Head писал(а):... Я и без дефайнов могу оперировать "голыми" r24, r25, r26 и r27, держа в голове за что каждый регистр отвечает. Заодно и память потренирую
"...Я тоже был молодой и горячий, сейчас немного поутих, хотя дым еще иногда идет..." ((с)Люди и манекены, А.Райкин)
это я к чему, настанет день и придет (ну прям притча) понимание того, что легче заменить один дефайн, чем шарахаться по всему исходнику исправляя назначение регистра, тем более что в разных местах один и тот же регистр может нести разную смысловую нагрузку, и придется вспоминать - где исправлять, а где так оставить...
ARV писал(а):.... пора переходить на Си"у меня такое понимание наступило довольно давно

А с чего бы это «не катить», если в описании ситемы команд для adiw/sbiw указано четыре пары?GP1 писал(а):попробуй обозвать r24 как-нибудь, и обратись как регистровой паре, если прокатит - значит все гуд, ну а если нет - то звиняйте...
Ну так надо смазать и провернутьGP1 писал(а):Понимание то давно пришло...![]()
Вот только мозги ужо шибко ржавые, не воспринимают Си ну ни как...
это преодолимоGP1 писал(а):Вот только мозги ужо шибко ржавые, не воспринимают Си ну ни как...
+1. Перешел на Си за 4-5 рабочих дней. из них 2 на освоение IAR AVR, остальное на вкуривание в синтаксис языка=). Сейчас вообще не жалею, очень нравится. Переписал свой проект часов (ARV писал(а):это преодолимо