Именно так. С выключенной оптимизацией компилятор IAR становится
максимально тупым (превращается в "компилятор для полных идиотов"
:-))), ему всё равно, волятильна переменная или нет, всё равно, что
значение уже есть в регистре - он всякий раз заново её пишет в
регистр перед отправкой в порт. Вот листинг того же самого с
ВЫКЛЮЧЕННОЙ оптимизацией: