Глюк masm?

Тема в разделе "WASM.ASSEMBLER", создана пользователем psu, 5 сен 2007.

  1. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    psu
    Давай конкретный пример, ибо у меня не повторяется.
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    psu
    я имел ввиду вместо invoke используйте
    push ...
    .....
    push ...
    call ...
     
  3. psu

    psu New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    198
    Выяснил вот что ( покосил почти весь код, чтобы найти :) ): глюки начинаются если между метками встречается команда типа je

    Код (Text):
    1. data_START LABEL BYTE
    2. je a
    3. a:
    4. data_END LABEL BYTE
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    это не глюки, это особенность масма
     
  5. psu

    psu New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    198
    а где эта "особенность" задокументирована? И если так задуманно, то для чего??
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    макросы, типа invoke, должны обрабатываться при первом проходе, и масм еще не знает
    какой ему поставить jmp длинный или короткий, вот и пихает в код длинный,
    соответственно размер под invoke считает тоже с длинным jmp'ом
     
  7. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    тогда, выходит, поможет спецификатор short для джампа.
     
  8. psu

    psu New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    198
    то есть
    Код (Text):
    1. je short a
    ?
    не помогло
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    должно помочь кодирование команды через db
     
  10. Geen

    Geen New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2007
    Сообщения:
    51
    equ OFFSET data_END - OFFSET data_START
    а здесь офсеты обязательны разве ?