к слову разница в чтении с volatile. Тут сравнение идет прямо из памяти, т.е. переменная оттуда считается 00CD0503 cmp byte ptr ds:[0C843F2h],0 00CD050A je 00CD0515 00CD050C cmp byte ptr ds:[0C843F2h],0 без volatile, а тут процессор оптимизирует доступ, считывает ее в регистр, и вот это как раз является краеугольным камнем, потому что проц может закешировать его 015C0503 movzx eax,byte ptr ds:[15343F2h] 015C050A test eax,eax 015C050C je 015C0512 015C050E test eax,eax
Обсуждают сегодня