ymstymkt
1

регистры

18.10.2010, 21:10. Показов 5362. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Только, только осваиваю AVR а посему возник вопрос: как перебрать последовательно регистры (РОН). т.е. мне надо сравнить 10 раз значения из ОЗУ с эталоном в R19 и то что равно этому эталону записать в R1-R9, а то что не равно в R20-R29
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2010, 21:10
Ответы с готовыми решениями:

регистры OCR1x
Прошу помощи! Уже целый вечер голову ломаю((( Проблема в следующем. Вот кусок года из моей...

Регистры общего назначения
Подскажите ,пожалуйста, чем отличаются регистры R0...R15 от R16...R31? Кроме того что некоторые...

Макросы, условия и регистры....
Решил я тут немного в порядок свои макросы привести, систематизировать да упорядочить. Ну и как...

Контрольные регистры ENC28J60
Всем доброго дня! Разбираюсь с запуском модуля ethernet ENC28J60 используя atmega328p. Нашел...

Регистры R0-R15 и команды ассемблера.
Добрый день! Подскажите пожалуйста, почему регистры R0-R15 могут использоваться не всеми командами...

9
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
18.10.2010, 21:14 2
К РОН можно обращаться через ld(s) и st(s). Адреса у них 0x00-0x1F.
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
18.10.2010, 21:18 3
Регистры отображаются в память. Регистры r1-r9 - адреса 1-9, регистры r20-r29 - адреса 20-29. Для косвенной адресации у Вас остаётся только Z - пара r30-r31.

Понадобится ещё регистр-счётчик (ну или цикл развернуть нужно)

ЗЫ. Только, ИМХО, это надуманная (ака студенческая задача).
0
ymstymkt
18.10.2010, 21:40 4
Цитата Сообщение от THI BIOST
ЗЫ. Только, ИМХО, это надуманная (ака студенческая задача).
так оно и есть
Цитата Сообщение от THI BIOST
Понадобится ещё регистр-счётчик (ну или цикл развернуть нужно)
счетчик есть, тут без проблем, считает 10 раз

только как я понял ещё ж понадобятся регистровые пары для записи не совпавших чисел и для записи совпавших числе, но не получится так как r26,r27,r28,r29 могут быть заняты

И ещё вопрос: почему компилятор орет на команду ldi r12,$01? пишет error: Invotyd rikystir, хотя если поменять r12 а r16 все норм.
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
18.10.2010, 21:43 5
Потому-что LDI не работает в регистрами R0 - R15.
Там можно сделать так:
Код
LDI R16, 38 ;Или не R16, а любой не нужный регистр из диапазона R16 - R31
MOV R12, R16
0
ymstymkt
18.10.2010, 21:46 6
Цитата Сообщение от dsodir
Потому-что LDI не работает в регистрами R0 - R15.
Там можно сделать так:
Код:
LDI R16, 38 ;Или не R16, а любой не нужный регистр из диапазона R16 - R31
MOV R12, R16
Спасибо
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
18.10.2010, 21:48 7
Цитата Сообщение от ymstymkt
понадобятся регистровые пары для записи не совпавших чисел и для записи совпавших числе
Можно использовать только Z, указывающий на первую последовательность (r1-r9), ко второй обращаться с помощью std Z+19

Цитата Сообщение от ymstymkt
почему компилятор орет на команду ldi r12,$01? пишет error: Invotyd rikystir, хотя если поменять r12 а r16 все норм.
В AVR регистры не равны. Самые равные из всех (по степени равенства)
- r28-r31 - косвенная адресация со смещением
- r26-r27 - косвенная адресация с авто инкрементом/декрементом
- r24-r25 - инкремент/декремент пары (16 бит)
- r16-r23 - работа с непосредственными операндами (ldi, subi, ori, omdi)

остальные регистры...

(всё описанное может работать со всем, что ниже)
0
ymstymkt
18.10.2010, 22:01 8
Цитата Сообщение от THI BIOST
Цитата Сообщение от ymstymkt
понадобятся регистровые пары для записи не совпавших чисел и для записи совпавших числе
Можно использовать только Z, указывающий на первую последовательность (r1-r9), ко второй обращаться с помощью std Z+19

А как читать тогда последовательно из озу... ? Я его и использовал для этого
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
18.10.2010, 22:08 9
Я так себе думаю можно завести среди неиспользуемых регистров 3 счетчика - общий, совпавших и несовпавших. При необходимости загружать в Z нужный адрес.
0
ymstymkt
18.10.2010, 23:05 10
всем спасибо, идея со счетчиками помогла!!
18.10.2010, 23:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2010, 23:05
Помогаю со студенческими работами здесь

spi индикация на сдвиговые регистры CH595
здравствуйте друзья, работа сдвигового регистра 595 и 7 сегментного индикатора состоящих из 5...

Почему во всех примерах используются регистры R16 и выше?
Почему во всех примерах используются регистры R16 и выше? Ну R1..R0 еще ладно, в них результаты...

Пересохранение в другие регистры, используя команду movw на Atmega 16
Подскажите зачем при умножении использовать пересохранение в другие регистры используя команду...

Где можно скачать подключаемые файлы, определяющие регистры?
Где можно скачать подключаемые файлы определяющие регисты в мк атмел? например mega(x)/tiny(x).h и...

i2c, atmel studio undeclared порты и регистры. TWBR TWSR
Всем привет! Развод... депресняк... на 2 года забросил проект, программирование в целом, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru