ploop писал(а):а мне нужно без инкремента прочитать по адресу Z+10
LPM Rd, Z читает без постинкремента. У вас нет даташита на контроллер?
гм.. господа коты

у меня всего 78 сообщений на форуме, но вопрос я задал достаточно четко..
мне нужно прочитать данные из программной памяти используя индексную адресацию
аналог LDD Rd , X + s
где s - смещение адреса для чтения... если правильно помню 6-ти битовое...
про чтение из программной памяти
LPM Rd , X - косвенная адресация
LPM Rd , X - косвенная адресация и постинкремент указателя
я в курсе, знаю, уже использую.. вопросов в них у меня не возникло..
объясню зачем мне это нужно..
есть набор данных, данные это структура..
в X (Z, Y) у меня адрес первого байта структуры..
мне нужно считать 10ый байт структуры.. потом в зависимости от его значения, например, 5 или еще какой нить... и так далее..
Для этого удобно применять именно индексную адресацию, а не инкрементировать\декрементировать каждый раз указатель (X, Y, Z)..
сейчас, за неимением (не знанием как организовать) индексной адресации делаю как раз с движением указателя..
LDI r16, 10
LDI r17, 0
ADD XL , r16
ADC XH , r17
; в X указатель на 10ый байт..
но такой способ не удобен если указатель приходиться двигать вперед назад...
раскидать структуру по регистрам тоже не выход (структура около 20 байт) - все займу.. да и не получиться все равно (уже продумывал это)
p.s. кто может показать работающий код самопрограммирования программной памяти ?