ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
154792 Топик полностью
AlexBi (24.04.2009 18:24, просмотров: 235) ответил Alex B. на я именно ее и включил. естественно сама структура (а не только поле) так же объявлена как volatile. Никак не могу въехать, в чем проблема
Извиняюсь, объявление параметра как volatile я не заметил. Нет разницы между 'asm' и 'asm volatile'. Если сделать параметр volatile, то результат правильный. Можно даже сделать volatile временно, вот так: if(f) { asm (" disi #0x3ff"); ((volatile struct SS *)ps)->f1=1; asm (" disi #0"); } else { asm (" disi #0x3ff"); ((volatile struct SS *)ps)->f1=0; asm (" disi #0"); } тогда тоже все получается. На этом варианте я и остановлюсь. Не хочется сильно урезать оптимизатор. Еще лучше было бы написать на АСМ, но не знаю как работать со структурой ... :(