Обратный инжиниринг - И 0FF

Я занимаюсь реверс-инжинирингом с помощью простого приложения crackme, а я отлаживаю его с помощью OllyDbg.

Я застрял в поведении инструкции И с операндом 0x0FF. Я имею в виду, что это эквивалентно в C++ для if (... = true).

Так что сбивает с толку то, что:

    ECX = CCCCCC01
    ZF = 1
    И ECX, 0FF
    ### После инструкции
    ECX  = 00000001
    ZF = 0
    ZF - должен быть активным

Я не знаю, почему результат регистра ECX 1 и ZF не активен.

AND => 1, 1 = 1 (те же операнды) В противном случае = 0

Может кто-нибудь объяснить мне это?

спасибо за помощь

1 ответ

Это немного И, поэтому в двоичном

    1100 1100 1100 1100 1100 1100 0000 0001
AND 0000 0000 0000 0000 0000 0000 1111 1111
    ----------------------------------------
    0000 0000 0000 0000 0000 0000 0000 0001
Другие вопросы по тегам