Процедура отдельным файлом.

Тема в разделе "WASM.BEGINNERS", создана пользователем Balamut, 7 июл 2018.

  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    Balamut,
    это мой косяк, поправь в 02.asm
    extern sort@8:near

    00.png
     
  2. Balamut

    Balamut New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2018
    Сообщения:
    13
    Это мне понятно, но почему команда call@8 компилируется в
    .....
    CALL DWORD PTR [02.401020] ; call sort@8. Что мне нужно сделать чтобы перейти
    .....
    02.401020 my proc ; сюда
     
  3. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.623
    Адрес:
    Russia
    микл уже сам признался что организовал этот косяк написав extern sort@8:dword
     
  4. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.623
    Адрес:
    Russia
    extern sort@8:dword - для косвенных переходов
    extern sort@8:near - для прямых

    косяк микла можно обойти и по другому написав call near ptr sort@8 - так то что указано в extern потеряет силу в этой инструкции
     
    Mikl___ нравится это.
  5. Balamut

    Balamut New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2018
    Сообщения:
    13
    Rockphorr, Mikl___.
    А вот теперь заработало, спасибо ребята.
    Здесь больше специфики масма, чем ассемблера вообще.
     
  6. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Balamut,

    > Почему вызов процедуры лезет в содержимое [памяти]

    Косвенное ветвление. Нельзя изучать компилер, не изучая язык, в данном случае две архитектуры - железо и ос.
     
  7. Balamut

    Balamut New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2018
    Сообщения:
    13
    Все верно. Но, одно дело явный вид jmp dword ptr var_contained_ofs, а другое синтаксис масм call@n:type,