-
- это подходит только для inc/dec, и только байтовой переменной. С переменной большей разрядности, или с другими действиями над ней (напр +10 или -20) Ваш вариант не будет работать даже на MCS-51 - koyodza(10.02.2011 16:33)
- +1000 Цитирую себя: "...для MCS-51....data u8 var....++var/--var..." - Chum_A(10.02.2011 17:08)
- volatile не гарантирует атомарности, она выключает оптимизацию при доступе к переменной. Так что и в примере с MCS-51 прерывания в основном цикле придется запрещать. - il-2(31.01.2011 08:41)
- В данном случае volatile не (совсем) причём, причём заклинание data, к которому для ++var\--var сгенерятся команды inc var или dec var, а они атомарные. - Chum_A_(31.01.2011 10:04, )
- Это не кошерно. Гарантии никто не даёт: генерируемый код может измениться в новой версии компилятора и при иных изменениях. Но для любительской поделки прокатит. - SciFi(31.01.2011 10:11)
- Гарантию даёт система команд MCS-51 :) - Chum_A_(31.01.2011 10:15, )
- Случись что, к ней и будете посылать претензии :-) - SciFi(31.01.2011 10:23)
- Гарантию даёт система команд MCS-51 :) - Chum_A_(31.01.2011 10:15, )
- Это не кошерно. Гарантии никто не даёт: генерируемый код может измениться в новой версии компилятора и при иных изменениях. Но для любительской поделки прокатит. - SciFi(31.01.2011 10:11)
- В данном случае volatile не (совсем) причём, причём заклинание data, к которому для ++var\--var сгенерятся команды inc var или dec var, а они атомарные. - Chum_A_(31.01.2011 10:04, )
- это подходит только для inc/dec, и только байтовой переменной. С переменной большей разрядности, или с другими действиями над ней (напр +10 или -20) Ваш вариант не будет работать даже на MCS-51 - koyodza(10.02.2011 16:33)