fasm проект стремительно превращается в фекалий

Тема в разделе "WASM.BEGINNERS", создана пользователем common_up, 31 авг 2010.

  1. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    Посмотри мой проект - я в нём пока еще ориентируюсь :)))
     
  2. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Вот здесь проект (игрушка STAR TREK - перевод с ФОРТРАН-4, PDP-11, 1979).
    Построенный ЕХЕ = ~60Кб (сколько строк не считал):

    http://www.codexxi.com/MyBlocks.html

    Код самого FASM-а не впечатляет: почти нет комментариев,
    код написан сплошным потоком - без смысловых секций.
    Гениям - простительно, как говорится.

    Линкер, по-моему, не нужен - есть директива include, которая хорошо справляется с модульностью (до определённого предела). Пределом, я бы назвал такой момент, когда необходимо подключить что-то законченное, как например Editor with Syntax Highlighting или Database Engine. Эти громоздкие вещи я бы сделал как DLLs. Делать библиотеку строк через LIB - я бы не стал, а просто включил на уровне исходного кода.

    Где то в 2007-м я сделал IDE для FASM - улучшенный вариант FASMW. Вот с его помощью и вышел STAR TREK - хотелось проверить потянет ли для среднего проекта. Ключ в том, чтобы мыслить "модульно" с самого начала. Например, если имя модуля String, тогда файлы в которых находится код должны иметь то же имя:

    String.Inc
    String.Asm
    String.Dat

    Далее, процедуры в модуле имеют префикс имени модуля:

    String_FindChar
    String_FindText
    String_Trim
    String_Length
    String_GetNextToken

    и т.п.

    Таким образом, навигация легче - сразу известно, где эти процедуры находятся.
    Читабельность кода тоже выше.

    Так что, FASM скорее жив чем мёртв!

    Тем более, что я заканчиваю IDE для объектно-ориентированного Ассемблера
    и код будет генерироваться на FASM.
     
  3. EOT

    EOT New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2010
    Сообщения:
    181
    7k строк тем более на асме это вообще не о чём, собирайте портфель. По вашей же иерархии вас можно причислить к сброду))
     
  4. common_up

    common_up New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2010
    Сообщения:
    85
    да-да-да, ты крутой, а я - бегу собирать портфель. По делу что-то скажешь ?
     
  5. Blackbeam

    Blackbeam New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    965
    воинам дзена не пристало кидаться какашками
     
  6. EOT

    EOT New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2010
    Сообщения:
    181
    По какому делу с тобой говорить? %)
     
  7. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.528
    Адрес:
    Russia
    EOT
    [modnote=TermoSINteZ]Осторожнее с выражениями. Хамство здесь не любят.[/modnote]
     
  8. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    939
    common_up

    Лично мое мнение нащот проектов. Имхо разницы особой нету - на асме или си или на чом-то еще. Какие идеи заложены - так и будет развиваца. При грамотном каркасе даже код средней убогости аккуратно разведенный по модулькам сравнительно контролируем и быстро находим.

    Одна из идей это реализация функционала ДАННЫМИ но не кодом. Например (банально) интерфейс, формы ввода. Во некоторых HLL языках формы генеряццо по так называемым "template" а юзерский код (если нужна доп обработка) втыкается в разные места типа "OnFormOpen." Все это можно рисовать сложными структурами данных и (для особо сложных случаев) передавать указатели на обработчики с заранее оговоренным форматом получения и отдачи данных.

    PUSHA/PUSH ,,, это имхо не проблема - достаточно принять хоть какую-нить конвенцию и - это же асм - от нее всегда можно отступить. Лично мне нравиццо Паскаль-стиль: я ручатами набираю пролог-эпилог с ret N.
     
  9. common_up

    common_up New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2010
    Сообщения:
    85
    В общем на свежую голову подумал и понял в чем есть проблема. Таки напишу статью о правильном стиле кодинга на фасме:)
    За подсказки спасибо, за критику тоже.
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Так ведь фасм фекалий, следовательно и проект также :)
     
  11. maybeZ3N

    maybeZ3N New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2010
    Сообщения:
    80
    А я то думаю, почему все ваши высказывания так дурно пахнут! Спасибо за аналогию! Буду теперь применять по жизни... :)

    *(а без улыбочки никак иначе - оскорбление)
     
  12. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.560
    Адрес:
    Russia
    весьма спорно - на вкус и цвет общих макросов нет :)
     
  13. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.560
    Адрес:
    Russia
    как что люди реализовывают на асме - исходники старых досов

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

    dZentle_man New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2008
    Сообщения:
    414
    Если редактор текста поддерживает сворачивание фигурных скобочек, то можно воспользоваться:
    Тогда, после отдачи команды "свернуть все", листинг превратится в список названий/меток процедур. Я пишу в Notepad++, можно и в любой приличной IDE, насчет фасма только не знаю, я его не курил.
     
  15. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    фасм так не может
     
  16. dZentle_man

    dZentle_man New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2008
    Сообщения:
    414
    Можно писать в Notepad++, а компилить в командной строке.
     
  17. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    Приятный редактор на тему:
    http://www.pspad.com/ru/
     
  18. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    http://board.flatassembler.net/topic.php?p=119039#119039