Уменьшение размера секции в fasme

Тема в разделе "WASM.WIN32", создана пользователем ap0, 2 ноя 2005.

  1. ap0

    ap0 New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2005
    Сообщения:
    3
    Адрес:
    Russia
    Недавно наспор с делфистом оптимизировал программу. Его программка была в 3к, моя на фасме в 2к.

    Но уверен что уменьшив размер секции можно значительно уменьшить прогу.

    Но встал вопрос "как это сделать?"
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Споры рождаются из-за различного уровня знаний, свои незнания, уравновешиваются через поиск знаниями других! Конфликт систем угасает после достижения баланса, уравновешивание - универсальный закон любого движения в природе. При балансирование одних систем, их потенциалы переходят к другим, наращивание потенциалов в этих ситемах порождает разницу между ними - так рождаются новые споры и вообще все неравновесные системы новых уровней, есть возражения? :)
     
  3. ap0

    ap0 New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2005
    Сообщения:
    3
    Адрес:
    Russia
    Спасибо за ответ. Прога правдо не HiWorld...
     
  4. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    bogrus

    ???!!!

    На философию потянуло ?! ;)))

    Крик души или годы\нелегкая судьба берут свое ? ;)))

    Я вот тоже после тяжелого дня на грудь принял не хило, но такой тост замутить...
     
  5. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    ap0




    Какая разница, если твоего делфиста не утихомирят 133 байта HiWorld из топика по ссылке и он захочет спорить дальше по размеру программ, то не трать зря? время :)



    Если хочешь научится уменьшать размер, то в общем случае (стандартными средствами) можно делать так:
    Код (Text):
    1. ;=====================================================================
    2. format      pe gui on '%fasminc%\stub.mz'   ; убираем MZ заголовок
    3. include     '%fasminc%\win32a.inc'
    4. ;=====================================================================
    5. cmd     db      'cmd.exe',0            ; не нулевые данные
    6. ;=====================================================================
    7. entry       $                       ; оптимизируем код
    8.         stdcall [CreateProcess],0,cmd,0,0,0,0,0,0,sinfo,pinfo
    9.         stdcall [ExitProcess],0
    10. ;=====================================================================
    11. data        import                        ; импорт
    12. library     kernel32,'kernel32.dll'
    13. include     '%fasminc%\apia\kernel32.inc'
    14. end     data
    15. ;=====================================================================
    16. align 4                           ; нулевые данные
    17. sinfo       STARTUPINFO
    18. pinfo       PROCESS_INFORMATION
    19. ;=====================================================================
    В этом 1Кб примере убирать MZ и оптимизировать код не обязательно, т.к. до 512 байт из-за наличия импорта все-равно не дотянем (фасм PE файлы генерит кратно 512-ти), а вот рабочую dll'ку или драйверок можно. Нулевые данные (структуры в конце) можно располагать в большом кол-ве, это на размере файла не скажется



    Можно пойти как в примере по ссылке, самому делать под себя PE заголовок, оптимизировать каждый байт кода и данных, тогда почти любую HLL прогу получится сократить в два раза, но сложность сего действия ... в общем зависит от задачи и это все на форуме обсуждалось не один раз, надо привыкать искать



    leo А куда ж без неё, ведь интересно же как устроен наш мир, вот дорвешся до инета и давай заполнять свои пробелы в голове, столько интересной информации, но и бесполезной тоже много ... времени мало, надо как-то отделять нужную для себя информацию, систематизировать, искать логику, находить общее чтобы узреть ключ



    Вот как охарактеризовать абсолютно всё движение в природе? Все это значит общее между планетарными системами, погодными, молекулярными, клеточными, биологическими, нейронными, социальными, экономическими, информационными ... симбиозами этих систем в конце концов, без разницы - слова придумывают люди, а не природа
     
  6. Polimorph

    Polimorph New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    51
    Адрес:
    Russian