Конечно можно(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено nemo 21 февраля 2004 г. 22:13
В ответ на: А поподробней можно? отправлено Bill 21 февраля 2004 г. 21:27

контроллер AVR
Имеется глобальная переменная например char p[];
мне нужно выполнить следующую операцию:
low(&p[33]) -> r28;
high(&p[33])-> r29;
поскольку переменная глобальная то адреса всех членов массива извесны на момент компиляции, соотвественно это можно сделать 2-мя командами.
я пытаюсь сделать следующее:

*((char**)28) = &p[33];

все получается, но занимает 6 команд(ну не хочет компилятор понимать что по адресам 28,29 можно загружать константы непосредственно), хотелось бы сделать примерно следующее:
asm("ldi r28, (&p[33]&0xFF)");
asm("ldi r29, (&p[33]&>>8)");
но компилятор ругается.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru