Ошибка выполнения инструкции процессора

Тема в разделе "WASM.ZEN", создана пользователем MSoft, 3 авг 2008.

  1. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Приветствую.
    Только что наблюдал такую картину: запускаю в ольке длл-ку, она там чего-то делает. Потом вызывает одну из своих функций, в которой есть стандартный пролог. Дык вот, после выполнения команды mov ebp,esp первый регистр НЕ ИЗМЕНИЛСЯ! Как такое может быть??? В аттаче выкладываю скрин произошедшего.
    Это может быть результатом вызова каких-нибудь апишек? Ну или набор флагов дллки.

    Только что заметил - вместо ebp меняется ecx - повторю вопрос: ЭТО КАК???

    П.С.: запускал на ХР СП2 под варей
     
  2. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Кривой обработчик исключений(#DB) установлен.
     
  3. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Посмотри в SoftICE он не соврёт ;)
     
  4. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Бывает иногда криво выполняются процедуры под отладчиком изза записи точки останова в память(опкод 0xCC).
    Пролог push ebp/mov ebp,esp ты имеешь ввиду, опкод инструкции mov ebp,esp это 0x8BEC, опкод инструкции mov ecx,esp это 0x8BCC. Процессор её исполняет верно, это криво её отображает отладчик. Лол :)))