Привет парни. Я разработал макробиблиотеку под названием HASM (Highlevel Extension for mASM). Эта библиотека решает многие проблемы ассемблера, но и содержит недостатки присущие всем подобного рода продуктам ибо препроцессор MASM есть сущее дерьмо. Я прицепил небольшой файлик с кодом - посмотрите, скажите нравиться или ненравиться. Если понравиться, я доведу до ума (а иначе просто влом) эту макробиблиотеку и выложу на своем сайте - ссылку дам. P.S. Прикрепленный исходник демнстрирует лишь некоторые черты HASM и был написан когда библиотека была в непонятно какой альфа-версии, но даже по этому коду вы поймете суть моих нововведений. Пожалуйста не задавайте лишних вопросов, я хочу услышать от вас только да или нет и возможно небольшие комментарии, все остальное - позже. P.S. После того как я перешел на HASM голова у меня стала болеть гораздо меньше.
twgt, видимо ты никогда не решел серьезных задач на асме, так что не суди так сказать ..свысока...)) Одной из главных проблем асма является почти полное отсутствие механизма для работы с пространствами имен. Это - главная проблема которую решает HASM. (всякие там локальные переменные внутри процедур не в счет - для серьезных проектов этого никогда не хватало).
Ты предпринял очередную попытку овысокоуровневания асма. Если бы мне нужен был такой механизм я мог бы и на си писать с тем же успехом. И, кстати, это проблема всетаки не асма а программиста
twgt, я не стану говорить что на си ты никогда не добьешься такой чистоты кода (это банально), скажу лишь то что я попытался перенести асм на новый уровень, превратить его в действительно удобный инструмент. Конечно можно тысячу раз бить себя пяткой в грудь и гордиться что ты настоящий ассемблерщик, но это не изменит тот факт, что сегодня ассемблер - это очень неудобный и ошибкоемкий инструмент. Сколько нервов приходиться тратить на придумывание уникальных имен тысячам меток и переменных, на отладку различных кусков кода. HASM это всего лишь попытка избавить программиста от ненужных забот. Ясное дело, что довести асм до того же уровня комфортабельности что и си HASM не в состоянии. Я в отличие от многих не смотрю на асм как на придаток ЯВУ, для меня асм вполне самостоятельное средство разработки, поэтому-то я и взялся за его совершенствование.
Заметь, я не говорил что ты сделал ненужную или не верную вещь, я лишь придрался к "проблемы ассемблера"!
В этом си ничуть не лучше асма. Но ведь никто не жалуется. Подпрограммы, структуры, модули - всё это есть как в си, так и в асме. Пространств имён действительно нет, но ведь обходились без них при написании никсов и их системных и прикладных программ.
twgt: принято. Вообще это лишь подмена понятий так что давай не будем больше об этом.. ..хмм. Не понял к чему это. Неужели ты хочешь сказать что ассемблер не надо совершенствовать, дескать так было, есть и будет есть. Ведь это же страусинный подход - тыкать голову в песок, отворачиваясь от проблем. Извини если не так тебя понял. А по поводу тысяч уникальных имен ты не так понял мою фразу. Я имел в виду две вещи : что касается меток - допустим у тебя есть две процедуры и ты захотел использовать в них одни и те же имена меток например для создания циклов (эта загвостка решаема в fasm но там только один уровень вложенности локальных меток); что касается переменных - в си их имена принадлежат определенным пространствам имен, т.е. в определенном смысле локальны, а в асме они всегда глобальны (кроме локальных переменных в процедурах, которые позволяют объявлять данные только в стеке).
CroX, мысль была о другом. Для серьезных коммерческих проектов чистый асм почти никогда не используется, только вместе с ЯВУ ибо так уж повелось на Руси. Поэтому можно тысячу раз говорить о том что асм самостоятелен но при этом как и многие нормальные люди использовать его как встроенный во что-нибудь еще.
SerjRDS Если Вы видите в низкоуровневости ассемблера какие-то проблемы, почему бы Вам не забыть о его существовании и продолжить кодить на Дельфи? Сплошные перлы! Неужели Вы считаете, что после подобных высказываний кто-то серьёзно отнесётся к вашей макробиблиотеке? Может, стоит сперва освоить ассемблер, а потом уже пытаться что-то в нём "исправить"? Или же вообще с ассемблером не связываться.
Проблемы не осознал - у меня нормально масм проглатывает метку next:, которая используется почти в любой процедуре. А как в си объявить локальную переменную, чтобы компилер её положил не в стек? И зачем это нужно?
asd А как в си объявить локальную переменную, чтобы компилер её положил не в стек? Например Код (Text): int foo(void) { static int boo = 0; ... } И зачем это нужно? Область видимости локальна, а время жизни постоянно.
Ну ты Quantum и загнул. Я что по твоему параноик, которому нечего делать и он улучшает то в чем не разбирается? Если не нравиться так по-русски и скажи. Я собственно об этом только и просил. ...мда..Ну вообще-то про низкоуровневость по-моему никто не говорил. Ну а если еще и подумать: какой был бы смысл мне разрабатывать макробиблиотеку если я знаю Делфи и не хочу возиться с низким уровнем? Скажи, а тебе никогда не хотелось программировать на ассемблере с такой же легкостью как и на Дельфи? А может тебе это и ненужно? В таком случае я тебя понимаю. Спасибо парни за высказанные мнения. Зовите Модератора - тему можно закрывать.
halyavin Это не в ту сторону. SerjRDS Дело не в том, что никто не пишет больших проектов на асме, а в том, что народ против HLA и его производных.