HASM

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

  1. SerjRDS

    SerjRDS New Member

    Публикаций:
    0
    Регистрация:
    19 мар 2007
    Сообщения:
    11
    Привет парни.
    Я разработал макробиблиотеку под названием HASM (Highlevel Extension for mASM). Эта библиотека решает многие проблемы ассемблера, но и содержит недостатки присущие всем подобного рода продуктам ибо препроцессор MASM есть сущее дерьмо. Я прицепил небольшой файлик с кодом - посмотрите, скажите нравиться или ненравиться. Если понравиться, я доведу до ума (а иначе просто влом) эту макробиблиотеку и выложу на своем сайте - ссылку дам.

    P.S. Прикрепленный исходник демнстрирует лишь некоторые черты HASM и был написан когда библиотека была в непонятно какой альфа-версии, но даже по этому коду вы поймете суть моих нововведений. Пожалуйста не задавайте лишних вопросов, я хочу услышать от вас только да или нет и возможно небольшие комментарии, все остальное - позже.

    P.S. После того как я перешел на HASM голова у меня стала болеть гораздо меньше.
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    однозначно не понравилось "опаскаливание" MASMа.
     
  3. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    у асма проблем нет и не было, они у людей только
     
  4. SerjRDS

    SerjRDS New Member

    Публикаций:
    0
    Регистрация:
    19 мар 2007
    Сообщения:
    11
    twgt, видимо ты никогда не решел серьезных задач на асме, так что не суди так сказать ..свысока...))
    Одной из главных проблем асма является почти полное отсутствие механизма для работы с пространствами имен. Это - главная проблема которую решает HASM. (всякие там локальные переменные внутри процедур не в счет - для серьезных проектов этого никогда не хватало).
     
  5. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Ты предпринял очередную попытку овысокоуровневания асма.
    Если бы мне нужен был такой механизм я мог бы и на си писать с тем же успехом. И, кстати, это проблема всетаки не асма :) а программиста
     
  6. SerjRDS

    SerjRDS New Member

    Публикаций:
    0
    Регистрация:
    19 мар 2007
    Сообщения:
    11
    twgt, я не стану говорить что на си ты никогда не добьешься такой чистоты кода (это банально), скажу лишь то что я попытался перенести асм на новый уровень, превратить его в действительно удобный инструмент. Конечно можно тысячу раз бить себя пяткой в грудь и гордиться что ты настоящий ассемблерщик, но это не изменит тот факт, что сегодня ассемблер - это очень неудобный и ошибкоемкий инструмент. Сколько нервов приходиться тратить на придумывание уникальных имен тысячам меток и переменных, на отладку различных кусков кода. HASM это всего лишь попытка избавить программиста от ненужных забот. Ясное дело, что довести асм до того же уровня комфортабельности что и си HASM не в состоянии. Я в отличие от многих не смотрю на асм как на придаток ЯВУ, для меня асм вполне самостоятельное средство разработки, поэтому-то я и взялся за его совершенствование.
     
  7. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Заметь, я не говорил что ты сделал ненужную или не верную вещь, я лишь придрался к "проблемы ассемблера"!
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    В этом си ничуть не лучше асма. Но ведь никто не жалуется. Подпрограммы, структуры, модули - всё это есть как в си, так и в асме.

    Пространств имён действительно нет, но ведь обходились без них при написании никсов и их системных и прикладных программ.
     
  9. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
  10. CroX

    CroX New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2006
    Сообщения:
    37
    Для нас тоже
     
  11. SerjRDS

    SerjRDS New Member

    Публикаций:
    0
    Регистрация:
    19 мар 2007
    Сообщения:
    11
    twgt: принято. Вообще это лишь подмена понятий так что давай не будем больше об этом..:)
    ..хмм. Не понял к чему это. Неужели ты хочешь сказать что ассемблер не надо совершенствовать, дескать так было, есть и будет есть. Ведь это же страусинный подход - тыкать голову в песок, отворачиваясь от проблем. Извини если не так тебя понял. А по поводу тысяч уникальных имен ты не так понял мою фразу. Я имел в виду две вещи : что касается меток - допустим у тебя есть две процедуры и ты захотел использовать в них одни и те же имена меток например для создания циклов (эта загвостка решаема в fasm но там только один уровень вложенности локальных меток); что касается переменных - в си их имена принадлежат определенным пространствам имен, т.е. в определенном смысле локальны, а в асме они всегда глобальны (кроме локальных переменных в процедурах, которые позволяют объявлять данные только в стеке).
     
  12. SerjRDS

    SerjRDS New Member

    Публикаций:
    0
    Регистрация:
    19 мар 2007
    Сообщения:
    11
    CroX, мысль была о другом. Для серьезных коммерческих проектов чистый асм почти никогда не используется, только вместе с ЯВУ ибо так уж повелось на Руси. Поэтому можно тысячу раз говорить о том что асм самостоятелен но при этом как и многие нормальные люди использовать его как встроенный во что-нибудь еще.
     
  13. Quantum

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

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    SerjRDS
    Если Вы видите в низкоуровневости ассемблера какие-то проблемы, почему бы Вам не забыть о его существовании и продолжить кодить на Дельфи?

    Сплошные перлы! Неужели Вы считаете, что после подобных высказываний кто-то серьёзно отнесётся к вашей макробиблиотеке? Может, стоит сперва освоить ассемблер, а потом уже пытаться что-то в нём "исправить"? Или же вообще с ассемблером не связываться.
     
  14. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Проблемы не осознал - у меня нормально масм проглатывает метку next:, которая используется почти в любой процедуре.

    А как в си объявить локальную переменную, чтобы компилер её положил не в стек? И зачем это нужно?
     
  15. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    А как же директива LOCALS xx ?
     
  16. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    asd
    А как в си объявить локальную переменную, чтобы компилер её положил не в стек?
    Например
    Код (Text):
    1. int foo(void)
    2. {
    3.   static int boo = 0;
    4.   ...
    5. }
    И зачем это нужно?
    Область видимости локальна, а время жизни постоянно.
     
  17. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    SerjRDS

    >Пожалуйста не задавайте лишних вопросов, я хочу услышать от вас только да или нет

    Нет
     
  18. SerjRDS

    SerjRDS New Member

    Публикаций:
    0
    Регистрация:
    19 мар 2007
    Сообщения:
    11
    Ну ты Quantum и загнул. Я что по твоему параноик, которому нечего делать и он улучшает то в чем не разбирается? Если не нравиться так по-русски и скажи. Я собственно об этом только и просил.
    ...мда..Ну вообще-то про низкоуровневость по-моему никто не говорил. Ну а если еще и подумать: какой был бы смысл мне разрабатывать макробиблиотеку если я знаю Делфи и не хочу возиться с низким уровнем? Скажи, а тебе никогда не хотелось программировать на ассемблере с такой же легкостью как и на Дельфи? А может тебе это и ненужно? В таком случае я тебя понимаю.

    Спасибо парни за высказанные мнения. Зовите Модератора - тему можно закрывать.
     
  19. halyavin

    halyavin New Member

    Публикаций:
    0
    Регистрация:
    13 май 2005
    Сообщения:
    252
    Адрес:
    Russia
    Может автор сможет подобное для Fasm'a накодить? Было бы не плохо.
     
  20. IceStudent

    IceStudent Active Member

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

    SerjRDS
    Дело не в том, что никто не пишет больших проектов на асме, а в том, что народ против HLA и его производных.