как под структуру типа MSG выделить строго определенное количество бай

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

  1. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    IceStudent
    + ещё пол кило на заголовок секции. Итого: 1 килограмм :)

    Morskoivolk
    Она и занимает ровно столько, сколько нужно. Просто размер секций в файле всегда кратен некоторой величине (в данном случае - 512 байт, как уже подметил IceStudent). Можно заставить линкер использовать меньшее значение выравнивания, но от этого экзешник перестанет загружаться на некоторых машинах, а на всех остальных будет грузиться медленнее. Или же проще поместить её в секцию BSS и потом линкер самостоятельно совместит её с .DATA.
    Код (Text):
    1. _BSS SEGMENT      DWORD PUBLIC USE32 'BSS'
    2. MSG           MSGSTRUCT <?>
    3. _BSS ENDS
     
  2. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Ну это делать стоит только когда нет секции инициализированных данных, если иначе, то дописывать в конец вссех заранее инициализированных данных (VirtSize растёт а PhysSize тот же)
     
  3. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Morskoivolk перечитай
    BEGGINERS->первое окно #14
    BEGGINERS->вопросы по 3-ему уроку Icselion's
    ASSEMBLER->уменьшение размера в MASM прочитай всё!
     
  4. Morskoivolk

    Morskoivolk New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2007
    Сообщения:
    85
    спасибо всем, кто откликнулся! благодарен и признателен!
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Ещё проще поместить в .data? :)
     
  6. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Да просто это масмовский линкер самовольничает нам во благо), совмещая эти секции. Какие линкеры еще так делают? кто проверял/сталкивался просветите пжлста.
     
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    asmfan
    Речь идёт о масме, где этот фокус не катит.

    IceStudent
    Но только не в данном случае, ведь сегменты создаются вручную (см. на исходник товарища Morskoivolk) и .data? вызовет кучу ошибок :)

    asmfan
    Из других, совместимых с coff, я юзал только polink и ld. Угадайте кто из них поступает аналогично мс-овскому линкеру ;)