Цитата(lolful @ Sep 16 2008, 13:32)

temp - это unsigned char. Функция возвращает именно число 0 или 1, а не их ASCII-код.
Обратите внимание, во втором случае ветвление зависит от двубайтовой переменной
Код
024C 0030 cpi R16,0
024E 0107 cpc R16,R17
Компилятор пытается оценить двухбайтовую переменную. Но еще раз скажу, эту логику оптимизатора я не догоняю, чего это он тут пытался изобразить?
Удачи!
ЗЫ. Отключите всю оптимизацию нафиг, на данном этапе она только вредит.