Тогда так можно обращаться и к регистрам периферии.
Если всё в МК адресуется в одном регистровом файле, то тогда наверное можно.
Ну, при всём уважении, такие вещи надо в документации производителя читать.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,YНужно это для того, чтобы устанавливать/обнулять пары регистров (r24-r25, ..., r30-r31), которые участвуют в командах ADIW, SBIW. Если, например, r24 у меня обозван 'tmp', то я пишу ADIW tmp, _число_. Вопрос в том, как мне потом не забыть, что вторая часть tmp это r25?... Обозвать r25 как 'tmpL'?avreal писал(а):Я так понимаю, нужно именно это, чтобы в коде (в макросах) обращаться не к TMPL/TMPH, а к TMP, TMP+1
А почему нет?Gudd-Head писал(а):Обозвать r25 как 'tmpL'?
А более изящного способа нет? Например, обозвать tmp как 16-ти битный регистр, размещённый в r24 и r25 можно как-нибудь?Engineer_Keen писал(а):А почему нет?
Я обычно пользуюсь регистровыми парами X, Y. ZGudd-Head писал(а):А более изящного способа нет? Например, обозвать tmp как 16-ти битный регистр, размещённый в r24 и r25 можно как-нибудь?Engineer_Keen писал(а):А почему нет?
X, Y. Z - это регистровые пары начиная с r26, а команды ADIW, SBIW работают с регистрами от r24.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 писал(а):это преодолимо