подмогите с разбором команды Call

Тема в разделе "WASM.BEGINNERS", создана пользователем DevilDevil, 22 фев 2008.

  1. DevilDevil

    DevilDevil Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2007
    Сообщения:
    101
    в моей программе по адресу 004268C6 происходит команда Call (опкод E80D070000), я прыгаю по адресу 0042707C.

    Помогите установить связь между адресами.
    В конечном счёте по опкоду команды Call мне нужно определять адрес конечной функции.
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    dword после 0xE8 - это относительное смещение, прибавь его к адресу - получишь точку назначения.
     
  3. DevilDevil

    DevilDevil Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2007
    Сообщения:
    101
    n0name,

    004268C6 + 0D070000 == D4968C6 != 0042707C.
     
  4. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    только прибавлять надо к адресу следующей иструкции, и байты все-таки наоборот, что-то вроде такого:
    004268C6: E80D070000 = call $ + 5 + 0000070D
    004268C6 + 5 + 0000070D = 00426FD8
    таки 0042707C не получается...
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    dword после 0xE8, а не dword составленный хз каким образом из байт после 0xE8.
     
  6. DevilDevil

    DevilDevil Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2007
    Сообщения:
    101
    Всем огромное спасибо. Действительно адреса съехали. Действительно
    > dword после 0xE8, а не dword составленный хз каким образом из байт после 0xE8.

    Ещё раз спасибо.
     
  7. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    DevilDevil, скачай intelовский справочник, там все команды есть с опкодами, адрессацией и другими нужными вещами.