У меня следующая разборка:
[dest] = d5 cd e8 ca 68
movzx eax, [ebp+dest]
# value of edx at this point is: F7FBB898
movsx edx, al
# value of edx after this is: FFFFFFD5
# [ebp+var_E] stores 0
movzx eax, [ebp+var_E]
movsx eax, al
# eax = 0 here
add eax, edx
# eax becomes FFFFFFD5
cmp eax, 0D5h
jnz short loc_565564E6
Я дал объяснение и последовательность действий для каждой инструкции ниже:
- Он читает байт из [dest] и сохраняет его в eax.
- Значение edx изначально: F7FBB898. После, movsx edx, все инструкции становятся FFFFFFD5. Как я могу убедиться, что значение edx будет 0x000000d5 на данный момент?
Каким должно быть мое начальное значение в [dest], чтобы после этих операций конечное значение в eax было 0xd5, а не 0xFFFFFFD5