Многострочные комментарии вида /*...*/ в ФАСМе.

Тема в разделе "WASM.PROJECTS", создана пользователем MHajduk, 28 май 2007.

  1. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Вчера немножко исправил файл 'PREPROCE.INC' ФАСМа (а Mr_Silent добавил сегодня ещё свои улучшения) так, что теперь можно комментировать целые блоки кода пользуясь символами '/*' и '*/'.

    Вот пример кода с комментариями в стиле языка C:
    Код (Text):
    1. mov     ecx, 4
    2. mov /* комментарий внутри инструкции */    esi, Source
    3. mov     edi, Dest + 3
    4.  
    5. /* однострочный комментарий */
    6. .label:
    7.     cld
    8.     lodsb
    9.     std
    10.  
    11.     /*
    12.  
    13.     многострочный комментарий
    14.  
    15.     */
    16.     stosb
    17.     loop .label
    Исправленный файл 'PREPROCE.INC' можно скачать здесь

    Файл надо поместить в папку 'FASM/SOURCE' и перекомпилить ВСЕ исходники.
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Каждый inc? :) Или все свои сорцы, когда-либо написанные под фасм?
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    оО ща протестирую) полезно
     
  4. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Точнее, я имел в виду, чтоб не забыть о версиях ФАСМа для ДОС, Linux и т.п. :)
     
  5. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    ухты. а проблем с
    str db '/* aaaaa'
    не будет?
     
  6. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Это спокойно пройдёт:
    Код (Text):
    1. str1 db '/*jjj'
     
  7. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Это будет неправильно даже и в "не улучшенном" ФАСМе, потому что STR это команда ассемблера (уже день прошёл и никто не обратил на это внимания - странно).
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    MHajduk
    я думаю, суть вопроса была не в этом =)
     
  9. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Да, но иногда вопрос со спрятанной внутри ошибкой может быть ловким тестом. ;)
     
  10. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    А незя постаринке забабахать, ввиде директивы comment?
    Наверное это даже не проблема на макроязыке написать, но лень.
    По любому было бы привычней....
     
  11. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    на форуме фасма прочти... это проблема... нету решения которое устраивало бы Автора, а полумер он не принимает...
     
  12. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    А чем его не устраивает, впихнуть директиву в исходник самого компилятора?

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

    Автор вообще самим Фасмом в серьёз занимается ещё или оставил ввиде вяло текущего процесса ?
    Там же ещё совсем далеко до полного щастья.
     
  13. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Proteus
    Чего тебе не хватает, кроме комментариев? Да и они есть, правда, через макросы.
     
  14. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    IceStudent
    но мы то с тобой оба знаем, что они немного косоваты, но... лучше уж такие, чем никакие.
    Proteus
    на форуме фасма, если интересно зайди почитай. времени сейчас нету. Первое что сделаеться(если сделаеться), это отладочная вроде инфа.

    Потом всё остальное. Предложений, что делать там море, ты прав, но не все так востребованы. В основном все оносяться к препроцессору. Хотя там начиналось и про ассемблер кое где, но Томас заявил, что раньше чем в Фасме 2.0 такое не появиться, и то только если Фасм 2.0 будет. Я тогда считал, что это сильно надо. Теперь нет. :)
    Главное програмист, а не компилятор....
     
  15. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    dead_body
    Да я как-то не пользуюсь ими - обычных хватает, если редактор с фолдингом.
     
  16. k_a

    k_a New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2007
    Сообщения:
    4
    Код (Text):
    1. .. equ repeat 0
    2. ...  equ end repeat
    3.  
    4.  
    5. ..
    6. многострочный
    7. комментарий
    8. ...
     
  17. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Уважаемый k_a,

    если б твой способ определения многострочного комментария был правильным, то всё, что находится между символами '..' и '...' должно быть проигнорировано. Ниже представлен код, который указывает недостатки твоего способа (во время компиляции должна возникнуть ошибка из-за отсутствия определения константы 'TestStr', но скриншот показывает совсем другое). :)

    Код (Text):
    1. .. equ repeat 0
    2. ...  equ end repeat
    3.  
    4. ..
    5.  
    6. TestStr equ 'Test string', 0
    7.  
    8. ...
    9.  
    10. display TestStr
    А вот и скриншот:

    [​IMG]
     
  18. IceStudent

    IceStudent Active Member

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

    k_a New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2007
    Сообщения:
    4
    Видимо, компилятор сначала делает проход по директивам equ? И потом по макросам. А по опкодам - в последнюю очередь...
    Но я этим в общем иногда пользуюсь. Если возникает глюк - не пользуюсь:))) я и не претендовал на правильность :)))
     
  20. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    Продолжение саги(на английском):
    http://board.flatassembler.net/topic.php?t=11161

    Кому сложно, прямая ссылка на скачивание последнего релиза:
    http://board.flatassembler.net/download.php?id=4859