Я отлаживаю свой код на x86, и проблема сводится к инструкции AND
иногда не очищает флаг ZF, если результат не равен нулю.
Вот проблемный кусок кода:
0257A9F9 mov edx,dword ptr [ecx+18h]
0257A9FC and edx,80000h
0257AA02 int 3
0257AA03 je 0257AA2A
Я добавил точку останова после AND для отладки.
Когда он останавливается на точке останова EDX == 0x80000 и ZF == 1.
Но ZF должен быть очищен, если EDX! = 0.
Код прекрасно работает, когда один шаг в отладчике,
но при нормальном запуске происходит сбой.
Вот скриншот сеанса отладчика.
Есть подсказки?
Если это имеет значение, код генерируется JIT, поэтому я выполняю данные.
Заранее спасибо.