Вопрос к знатокам IAR C
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено nml 06 января 2005 г. 19:39

есть подпрограмма, в конце которой такое:
-----------------------------------
W = W<<6;
_CLI();
toDAC = W;
_SEI();
-----------------------------------
где W - локальная, toDAC - volatile, используется в прерывании, int
Так компилер мне строит такое:
-----------------------------------
81 W = W<<6;
82 _CLI();
\ 00000078 94F8 CLI
83 toDAC = W;
\ 0000007A E046 LDI R20,6
\ 0000007C ........ CALL ?S_SHL_L02
\ 00000080 .... LDI R30,LOW(toDAC)
\ 00000082 .... LDI R31,(toDAC) >> 8
\ 00000084 8300 ST Z,R16
\ 00000086 8311 STD Z+1,R17
84 _SEI();
\ 00000088 9478 SEI
-----------------------------------
А мне бы хотелось, чтоб он сперва сдвинул, а потом уже прерывания запрещал. Оптимизацию отключать не хочется, потому как на всю процедуру. Неужто нет такого шаманского слова "вот отсюда и до сюда не умничай!"?

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

Ответы



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

E-mail: info@telesys.ru