Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR прикалываеться
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
dimitryl
IAR Atmel AVR C/C++ Compiler V4.21A/W32, Evaluation Version

btTemp далее не используется.
компилировалось с ключом -s2 (Best debug support)

листинг:

1)
Код
129             Uart1_context.bTxCount=  btTemp + 1;
   \   00000084   2F08               MOV     R16, R24
   \   00000086   9503               INC     R16
   \   00000088   9300....           STS     (Uart1_context + 2), R16


2)
Код
129             Uart1_context.bTxCount=   ++btTemp;
   \   00000084   9583               INC     R24
   \   00000086   2F08               MOV     R16, R24
   \   00000088   2F80               MOV     R24, R16
   \   0000008A   9300....           STS     (Uart1_context + 2), R16
IgorKossak
Ну и к чему это сообщение?
Вы знаете почему это так или как этого избежать или как это может помешать работе программы, или просто поприкалываться решили?
rezident
А в чем тут прикол?
В данном случае операция btTemp + 1 аналогична btTemp++, т.е. постинкременту.
Во втором же случае использован прединкремент. Отсюда и разница в исходнике. Никакого прикола нет.
dimitryl
В этом конкретном примере не совсем правильная работа с регистровыми переменными, приводящая к появлению лишней команды копирования из регистра в регистр.
Ну а в виде
MOV R16, R24
MOV R24, R16
по моему заставляет улыбнуться.
Dog Pawlowa
Цитата(dimitryl @ Jun 21 2007, 11:01) *
btTemp далее не используется.

Что такое "далее не используется"? Программа линейная и потом останавливается? Переменная где определена?
1) Было изменено значение переменной и вполне естественно, что компилятор сохраняет ее значение. На каком основании он ее должен кинуть? Только если переменная определена внутри функции.
2) Даже если она так определена, то Вы, как программист, зачем ее модифицируете, если потом не используете? Хотите, чтобы компилятор был умнее Вас? smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.