di(); glob_ww++; ei(); -- не вариант? Разумеется di() и ei() являются барьерами одновременно (ибо на 16-битной платформе 32-битный счётчик один фиг за две операции). Ну не совсем ei() прямо таки, а begin_critical() с запоминанием и end_critical() с восстановлением. Косяк в том, чтоб глобальные переменные нужно обёртывать в критические секции, а не полагаться на атомарность операций (а то ещё многоядерность и т.п.)