Здравствуйте! Скажу сразу - я новичок в этих вопросах. Копался с помощью дизасемблера в программе, и тут мне попалась строчка: cmp d,[ebp][-4],0FFFFE0BE
Поясните пожалуйста что это все значит: откуда взялось d? ведь cmp просто сравнивает два числа? Почему последний аргумент (по всей логике - это должен быть int32) из 33 байтов: 0 + 32 байта числа?
Предистория: чуть выше этой строчи функция берет локальную переменную (ebp-4, назовем ее v) и вычитает из нее 10000. В большинстве своем v до вычитания имеет значения ~1998. Т.е. 1998 - 10000 = -8002. Но в приведенной выше команде сравнения - v сравнивается с FFFFE0BE .... если инвертировать это число, то получится как раз 1F42(8002). Я так предполагаю это как-то связанно с UNSIGNED?