СХЕМА.RU - Радиолюбительский портал » Другие новости радиолюбителя » Сложение Регистровой Пары (16Бит) И Рон (8Бит) - Ассемблер, Tiny2313

Сложение Регистровой Пары (16Бит) И Рон (8Бит) - Ассемблер, Tiny2313

27-01-2013, 13:53 От: admin Посмотрели: 1088
Здравствуйте.

Поставил тут меня в тупик один маленький вопросец:

Значит для использования в команде lpm нужно предварительно загнать в регистр Z нужный адрес.

Нужный адрес предполагается формировать из адреса таблицы и номера элемента этой таблицы.

Вопрос в том, как прибавить к регистровой паре Z восьмибитное число (num), хранящееся в каком-нибудь из РОН-ов.

Вот если бы я хранил адрес не в Z а в двух других РОН, вопросов у меня не возникло бы (команды add, затем adc).

Но как работает сложение в регистровой паре?

Может действовать также как и с разными РОН командами add и adc, но переносится ли бит переноса автоматом или нет в паре я инфы не нашел.

Конечно для 100% надежности можно поступить так: предварительно записать адрес в двух РОН, там произвести манипуляции над адресом, затем перенести побайтно в регистр Z. Но при этом тратится 2 "лишних" регистра.

Хотелось бы произвести сложение в самом регистре Z.



Будет ли работать этот код (строки 4...8):

использование таблицы в программе


1 .def num = R16 ; номер элемента в таблице
2 .def data = R17 ; данные по номеру num из таблицы
....
4 ldi ZL, low(tab1*2) ; обращение к первой таблице по метке tab1 (умножаем на два чтобы перейти к побайтной адресации)
5 ldi ZH, high(tab1*2)
6 add ZL, num ; прибавляем к адресу начала таблицы номер интересуемого элемента таблицы
7 ldi temp, 0
8 adc ZH, ldi ; т.к. номер таблицы 8-ми битный то прибавляем ноль чтобы прибавился флаг переноса (если есть)

9 lpm data, Z ; наконец достаем сами данные из таблицы



таблицы (в конце программного кода)


tab1: .dw <...сами данные...>
...
tabN: .dw <...данные...>

Раздел: AVR

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Сложение Регистровой Пары (16Бит) И Рон (8Бит) - Ассемблер, Tiny2313 все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба

Добавление комментария

Ваше имя:*
E-Mail:*
Текст:
Вопрос:
Решите уравнения x+2x=789
Ответ:*
Введите два слова, показанных на изображении:



Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Ноябрь 2025    »
ПнВтСрЧтПтСбВс
 12
3456789
10111213141516
17181920212223
24252627282930