Цитата(vmp @ Jun 8 2007, 10:48)

Не вижу никакого выкидывания.
pump_state кешируется в R14. В зависимости от missing_pulses в R14 пишется либо 0 (001F94), либо 1 (001F98), после чего R14 сохраняется в pump_state (001F9A). Просто компилятор чуть-чуть не попал с комментариями - это простительно на высоких уровнях оптимизации.
Спасибо. Действительно, погорячился. Простительно - отладчик в прерываниях ведет себя неадекватно, запаниковал.
Цитата(vmp @ Jun 8 2007, 10:48)

P.S. Основной источник глюков при использовании прерываний - программист, не знающий про ключевое слово volatile.
Никогда не называл себя программистом :-)
А поясните, пожалуйста.
volatile на самом то деле указано для pump_state. И я думаю, что это совершенно не нужно. Если переменная используется ТОЛЬКО в прерывании, то volatile на самом то деле и не нужно, правда?
Уходя, оставьте свет...