masm vs fasm

Discussion in 'WASM.HEAP' started by dead_body, Dec 10, 2005.

  1. dead_body

    dead_body wasm.ru

    Blog Posts:
    0
  2. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Нда. Что нового — тут же написано.
     
  3. dead_body

    dead_body wasm.ru

    Blog Posts:
    0
    IceStudent

    а я думал, ещё что-то добавили.(надо же как-то фасму противостоять) вообщем ясно, фасм продолжает рулить...
     
  4. Ms Rem

    Ms Rem New Member

    Blog Posts:
    0
    Да, фасм рулит!

    Я раньше масмом пользовался, но меня от него прям тошнит, недавно на фасм перешел и аж писать стало приятно :)
     
  5. cresta

    cresta Active Member

    Blog Posts:
    0




    Рулит. В канаву.



    Один товарищ сказал, что фасм превратил ассемблер в говно. Практически визуал бейсик.

    Полностью с ним согласен.
     
  6. dead_body

    dead_body wasm.ru

    Blog Posts:
    0
  7. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    cresta



    Давайте без очередного холивара. Каждому своё.
     
  8. Ms Rem

    Ms Rem New Member

    Blog Posts:
    0


    Где визуал бейсик? Тыкни пальцем пожалуйста.
     
  9. cresta

    cresta Active Member

    Blog Posts:
    0
    IceStudent





    Не ты ли его начинаешь? :)) Тема касается изменений в пакете масма, а не того, начинает, продолжает или заканчивает рулить фасм и кого от чего тошнит и т.п.
     
  10. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Ну вот, приехали. Я пытаюсь остановить его, а не защищать масм/фасм.
     
  11. Asterix

    Asterix New Member

    Blog Posts:
    0
    Ms Rem



    <font color="red]<></font><!--color--> это ли не наследство VB и Delphi



    из-за этого мало использую фасм, раздражает
     
  12. Ms Rem

    Ms Rem New Member

    Blog Posts:
    0


    Не хочешь, не пользуйся. Фасм тем хорош, что он черезвычайно гибок. На нем можно писать исполнимые файлы абсолютно любого формата (чего не скажешь о масме).

    Я в фасме ценю прежде всего низкоуровневые возможности, такие как компиляция в бинарный файл, ручное описание импорта, отсутствие линкования (что дает полный контроль над результатом).

    А высокоуровневые макросы я не уважаю, имхо они что в масме что в фасме превращают ассемблер в подобие VB.

    Если не наравятся какие-либо макросы, то всегда можно написать свои.

    В масме мне не нравиться прежде всего необходимость линковки и некоторая нелогичность синтаксиса.

    Фасм же не ограничивает возможности программиста, что хочу - то и пишу без всяких ограничений.
     
  13. Asterix

    Asterix New Member

    Blog Posts:
    0
    <> с этим поделать ничего нельзя, потому что

    по задумке автора "!" не является специальным

    символом, например с "!" могут начинаться метки

    что вобщем-то сделано совершенно напрасно



    что до не логичного синтаксиса то некоторым наоборот синтаксис

    фасма кажется не логичным :derisive:
     
  14. _BC_

    _BC_ БЦ

    Blog Posts:
    0
    Фасм -- это возрастное (детское) заболевание, такое как, например, подростковые прыщи. Увлечение фасмом можно рассматривать как определенные симптомы... своего рода признак, характеризующий возраст и опыт в ассемблере (с определенной долей вероятности) заболевшего. Фасм пригоден только для "несерьёзных" задач, таких как демки или вирусы, и для всяческих небольших программок. Ни для каких серьёзных целей фасм не пригоден, и отсутствие линковки тут играет немалую роль. Чтобы понять, как отсутствие линковки превращает фасм в детскую игрушку, неплохо вспомнить, зачем линковка была собственно придумана:

    1. Использование библиотек и чужого кода вне зависимости от языка, на котором они написаны. Рано или поздно понадобится линковать ассемблерные программы с либами на, допустим, Си. ZLib, RSARef/RSAEuro, мат. либы вроде Miracl'а и тд и тп -- всё это может понадобиться и всё это написано не на ассемблере. Или обратная задача -- хлл программа, использующая ассемблерные модули. Тоже болт. ;)

    2. Разделение кода на отдельные модули, которые компилируются отдельно и линкуются. Допустим, у нас имеется Большой код, который навороченным билд-сервером компилируется не меньше 20 минут (предположим, цельная ОС или прошивка/BIOS). Не имея возможности разбить код на модули, при внесении изменений/добавлении нового кода придется вместо компиляции отдельных модулей выполнять весь процесс заново. Благодаря тому, что фасм -- это всё таки ассемблер, а не компилятор .net, скорость значительно быстрее... но всё же... лишняя работа, даже быстро сделанная, остается лишней.

    Кстати, по поводу столь обожающих фасм "писателей осей". Не знаю, соответствует ли это действительности, но мне кажется, что мысль сделать "свою ось" появляется у человека, который только-только освоил протмоду и делает первые шаги в ассемблере. Это моё личное убеждение, подкрепленное своей аналогичной мыслью, появившейся в ~14 лет после прочтения книги "Защищенный режим процессоров 80286/80386/80486" Фроловых.

    Насчет супер-пригодности фасма для написаниия осей из-за независимости от форматов замечу, что операционные системы (настоящие, а не уродливые самоделки) для х86 пишут уже ~20 лет и ещё никто не жаловался. А в качестве примера можно привести сорцы Award BIOS 6.0, которые написаны на масме.

    И наконец, отладка. Большие программы на ассемблере требуют отладки, а фасм, насколько мне известно, никакой символьной информации для отладки не производит.

    Ну а про синтаксис/макросы я промолчу, т.к. уникальные авторские за.бы от создателей фасма -- это "тема для отдельного большого разговора".

    Хау.
     
  15. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Нет, всё же не удержались. ОК.



    Asterix



    Где-то был пост S_T_A_S_, в котором он неплохо аргументировал, что masm - деревянный и мёртвый. Советую прочитать его. По поводу твоего замечания скажу лишь то, что у масма намного больше вещей, "с которыми поделать ничего нельзя". Пусть <> будет минусом фасма, но у масма их больше.



    _BC_

    Не инструмент определяет задачу, а задача определяет инструмент. ТО, что фасм пригоден (и оч. удобен) для маленьких программ (демок,утилит,вирусов, прочее) вовсе не значит, что он этим ограничен.





    Что значит отсутствие? Всего лишь то, что в комплекте с ним не идёт линкер. Всё. Вы сравниваете пакеты (masm32 и fasm), но речь идёт о ассемблерах. И то, что fasm как ассемблер прекрасно справляется с генерацией любого формата данных (вы, надеюсь, помните код, генерящий bmp, png (если не спутал)? знаете ли о возможности проводить вычисления при реализации, например, криптоалгоритмов одними лишь макросредствами?) — это неоспоримое преимущество.





    Нет никакого болта. Берём линкер и вперёд.





    Фасм обработает его на порядок быстрее, это раз. В фасме никто не запрещает использовать модули, это два.





    Лирическое отступление :)





    Консерватизм и не более того. Когда писали BIOS, фасма и в помине не было. Естесственно, писать код на чём-то надо было. Правда, логичнее было бы выбрать tasm, как менее бажный и с более "чистым" синтаксисом, но.. влияние MS.





    Да, справедливое замечание. Символьной информации нет. Имхо, это потому, что во-первых, формат от MS (PDB) закрыт, во-вторых, кроссплатформенность. Генерировать свой? А кто его поддержит? Конечно, генерилось бы что-то наподобие MAP — уже легче. Или поддержка отладочной информации, которую использует GDB (но о последнем я ничего не знаю).

    Но в принципе возможность такую добавить не так уж и сложно. Между прочим, S_T_A_S_ экспериментировал в этой области и получалось генерировать pdb при помощи отдельного скрипта.

    Да, отладки нет, но это можно отнести к общим недостаткам open-source проектов.





    Синтаксис, между прочим, строился на ideal-режиме tasm'a и вполне логичен. То, что вы привыкли к масму — это не аргумент. С макросредствами fasm'a по моему мнению не так уж и плохо, но вот то, во что превращается макробиблиотека — эта жалкая эмуляция masm'a.. Глупости. Из-за консерваторов-любителей масма и большого объёма масмовского кода происходят такие переборы. С другой стороны, это всего лишь библиотека макросов, не нравится — не используй, отказаться от неё очень легко, не то, что от захардкоденных "фич" масма.

    В принципе, и некоторые встраиваемые фичи фасма не нравятся лично мне, но это их одна-две.
     
  16. Ms Rem

    Ms Rem New Member

    Blog Posts:
    0




    Я с этим несогласен. Фасм имеет возможность компиляции в MS COFF формат, поэтому можно легко использовать линковку если она вдруг понадобиться.





    Нифига, я с успехом использую модули написаные на фасме и в VC++ и в Delphi



    Немалованым фактом является открытость исходников фасма. Я уже неоднократно переделывал его движок под свои цели. Я думаю что врядли не имея исходников можно внести какие-либо серьезные изменения хотя-бы в тот же масм.



    Как и сказал BC, фасм хорошо подходит для низкоуровневых выкрутас, тапи вирусов. Собственно для этой цели мне и нужен ассемблер, так как большие проекты писать на ассемблере совсем нецелесообразно.
     
  17. masquer

    masquer wasm.ru

    Blog Posts:
    0
    _BC_

    В точку, как говорится, лучше и не скажешь! Для сорцов на сотню-другую строк чем угодно можно пользовататься, для чего-то большего фасм абсолютно не пригоден
     
  18. masquer

    masquer wasm.ru

    Blog Posts:
    0


    очень даже спорный вопрос :)
     
  19. Ms Rem

    Ms Rem New Member

    Blog Posts:
    0


    Так давай обсудим спорность этого вопроса.
     
  20. masquer

    masquer wasm.ru

    Blog Posts:
    0
    Ms Rem

    Ну, давай, почему тебе кажется что писать большие проекты на ассемблере нецелесообразно?