Узать метку точки входа(на фасме) возможно ли это?

Тема в разделе "WASM.ASSEMBLER", создана пользователем EvilsInterrupt, 13 ноя 2006.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Возьму
    Код (Text):
    1.     format PE GUI 4.0
    2.     entry main
    Очень было бы удобно сделать не зависимый от имнеи точки входа макрос для написания базово-независимого кода.
    Но возможно ли как либо узнать метку точки входа.

    Пояснию на примере:
    Есть статья от Ms-Rem: URL: http://www.wasm.ru/article.php?article=fwb , в ней он использует макрос:
    Код (Text):
    1. macro callx i {call dword [ebp+p_#i-CodeStart]}
    2.  
    3. macro invokex proc,[arg]
    4.  { common
    5.     if ~ arg eq
    6.    reverse
    7.      pushd arg
    8.    common
    9.    end if
    10.     callx proc }
    НО! Он заранее закладывается на то что метка точки входа будет именоваться CodeStart, а мне бы хотелось узнать, а есть ли способ не привязываться к конкретному имени, моэжет есть какая хитрая директива или макрос?
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    EvilsInterrupt
    Если точка входа в начале секции, то можешь использовать "$$". А так вряд ли что-то тебе поможет. А тебе жалко лишней строчки? "CodeStart = your_fav_start_label".
     
  3. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    IceStudent
    Я делаю небольшой инклуд с макросами, то что обычно для меня, к примеру название точки входа своим ником, не обязательно такого же правила будет придерживаться и мой друг Вася, т.е. он не обязан называть моим ником свои точки входа! :))) Да не спорю, ему нужно будет поправить всего одну строчку, но зачем? Разве живем для того чтобы решить и забыть?
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    EvilsInterrupt
    Раз делаешь библиотеку, документируй её. И напиши, что, дескать, ей необходима метка CODE_START_LABEL. А уж пользователи её потрудятся объявить её у себя или сделать хотя бы дефайн.
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Удалил по запарке :dntknw:

    Black_mirror:
    EvilsInterrupt
    Можно написать такую версию макроса entry:
    macro entry name
    {
    entry_name equ name
    entry name
    }
    а если в нужный момент entry_name не определено то выдать сообщение что твой файл необходимо включать до директивы entry.
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Black_mirror
    Мне бы такое решение не понравилось, т.к. до директивы entry у меня только format и ничего более.
     
  7. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    пришёл к выводу, что entry лучше всё-таки после include'в писать, т.к. если это расширенные х-имклуды, то они содержат format внутри и нет нужды его писать в явном виде, просто указать расширенный инклуд и, затем, точку входа.