Стандартная библиотека для ассемблера

Тема в разделе "WASM.PROJECTS", создана пользователем dmit10, 23 ноя 2004.

  1. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    Да, злые вы мужики! Злые, бо дюже вумные!



    1.Не говорят же ребенку - вон, в книге всех букв навалом - бери и учи! Ему дают азбуку. Так вот такой набор процедур и мог бы быть своего рода азбукой. Не хочешь - не используй. Хочешь - посмотри исходник. Хочешь - измени, а то и другим посоветуй, как лучше. Не устраивает - пиши свое. Конечно, по исходникам да по форуму много процедур можно найти, но их действительно нужно искать, а искать иногда тяжело, потому что нужно знать, что оно вообще есть. и из исходников процедуры приходится вычленять, а чужие исходники -потемки, особенно для новичков. К тому же в примерах в пакете масма тоже много всего есть, но та же беда - все неупорядочено (или плохо упорядочено). вобщем, некому дерево построить :lol:

    2.лично я велкам ту асм потому что он мне просто нравится (и более привычен ;), и мне плевать, что нечто из того что я делаю лучше реализовано в прологе, например, или еще где. когда-то я несколько лет проварился в собственном соку в медицинском общежитии - у меня был единственный, или, точнее, только у меня было несколько самодельных компов, которые я рьяно программировал на ассемблере, достигнув размера своих программ до 3 кбайт не имея не то что интернета, а даже литературы (кроме журналов Радио и Моделист-Конструктор). поэтому, имея опыт робинзона в своем роде, считаю, что такая библиотека нужна (не "стандартная", не lib или dll, а в виде одного или нескольких текстовых файлов с примерами реализации функций). конечно, гуру не лезут в туториалы смотреть, как вызвать мессаджбокс, но когда-то (когда еще не были гурами) наверняка смотрели, и не раз ;)

    3.и ваще, должен заметить, что мнений может быть несколько. или, иначе, то, что совершенно не нужно одному, может другому очень помочь. да и я далеко всего не знаю. вобщем, дабрее нада быть ;)



    фух, хв на сегодня ;)
     
  2. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    shoo

    Да. Поначалу я тоже лазил в икзелиона смотреть как чего. Теперь мне достаточно platform sdk, т.к. запоминать апишки неинтересно, да и сдк одной командой вызывается.



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





    Итог: есть мнение, что создание подобной библиотеки - мартышкин труд. Все уже давно есть, надо только найти.



    ЗЫ: это я еще добрый. :)
     
  3. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    n0p



    ГЫ :) предупреждай, когда злой - я буду работать по этим дням (а не делать вид, что печатаю инструкцию как сейчас ;)



    а труд сделал мартышку человеком :lol:



    например, Кнута у меня нет, хотя я также считаю, что бумажная книга - лучший вариант: деньги все семья съедает, так что если покупаю че - то только железо. а что такое platform sdk - я и не знаю точно, теперь буду узнавать ;)



    просто одно время у меня че-то было - си-билдер, что-ли, так там в примерах было валом процедурок, не буду врать, но вроде того как: sort1.c, sort2.c, array1.c и т.п., где были краткие примеры рабочих процедур, от которых можно было отталкиваться, причем, хорошо упорядоченных и понятных по названию. вот и для ассемблера 32-бит тоже было бы неплохо иметь такой наборчик (кому еще не поздно подучится ;). так как примеры масма более ориентированы на демонстрацию работы с вынь апи, а не программированием в асме вообще.
     
  4. shoo

    shoo New Member

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


    правильно, идея темы, как я понимаю, в том, чтобы такая библиотека была, неважно, будут ли процедуры писаться или искаться - в каждом конкретном случае как легче (и лучше), просто искать в перечне и искать, например, в гугле - вещи разные. вот.
     
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
  6. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    offtop



    Но не для того, чтобы человек превратился в лошадь Ж)

    /offtop
     
  7. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine


    еще ниче не искал, но в списке языков асма нет :lol:
     
  8. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск


    Хмм.. а какая разница? Нам лекции дают вообще на псевдокоде: гибрид паскаля, сей и еще черт знает чего. Но лабы-то пишем на Цэ++. Скорее всего, на koderz.com есть Си, а этого вполне достаточно. Ведь важен алгоритм, а не сам код.
     
  9. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine


    ну, псевдокод, например, плохо линкуется
     
  10. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Ну вы, блин, как дедушка Ленин: "учицца, учицца и учицца", "самосовершенствование" и прочая философская муть. Не стоит забывать народную мудрость: "век живи, век учись - дураком сдохнешь". Ну нельзя же до такой степени игнорировать тот факт, что само по себе программирование - это дисциплина практическая и предназначенная для решения опять же _практических_ задач. А для этого библиотеки не просто нужны - они необходимы, и библиотеки не "для опытов", а для использования в проектах. MASM'овские, увы, для этого плохо приспособлены: мне как-то понадобилась процедура перевода строки в DWORD - и оказалось, что обе имеющиеся в MASM примера не проверяют, а является ли эта строка числом вообще! Документация на либы - тоже отсутствует как класс. Что мне нравится в Delphi - это то, что я скачал конпонент "hex-редактор", прочитал нужный раздел документации, бросил на форму - и оно работает, а на философские аспекты мне покласть с пробором. С асмовскими (и всеми прочими) библиотеками тоже должно быть так же: подключил и оно _сразу_ (а не после "обработки напильником") пригодно к употреблению, тем более, что в абсолютном большинстве языков программирование уже давно дела обстоят именно так и никак иначе. Боязнь использования чужого кода - это вообще гнилое сектантство: все программисты делают _это_ и никто от _этого_ еще не умер. На практику надо ориентироваться, а не на всякую умозрительную хрень - если уж программируешь на ассемблере, то делать это надо со всеми возможными и невозможными удобствами.
     
  11. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Даёшь component assembler!?
     
  12. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    captain cobalt

    Даёшь component assembler!?



    Да разве ж я против? Я только "за". Но перед этим нужно пройти все предыдущие ступени: структурный ассемблер, объектно-ориентированный ассемблер (во, прогрессивную и модерновую мнемонику только что сочинил: вместо add eax,edx - eax.add(edx)) и только потом - компонентный. Причем не ассемблер, а метаассемблер, который бы из "своих родных" исходников генерил исходники для MASM, FASM, GNU AS и прочих.
     
  13. n0p

    n0p 10010000b

    Публикаций:
    0
    Регистрация:
    7 май 2003
    Сообщения:
    256
    Адрес:
    Новосиbeerск
    CyberManiac

    Не будите во мне зверя, пожалуйста.



    То что ты описал это НЕ АССЕМБЛЕР.



    Лозунг "век живи - век учись - сдохнешь дураком" имеет скрытый подтекст, что жизнь дерьмо и все равно ничем хорошим не кончится. Так? Или не так?



    Лично мне нравится сам процесс самосовершенствования и познания, а на все остальное мне просто насрать. Не ради денег живу и, надеюсь, не из-за денег сдохну.



    Каждыйй человек выбирает СВОЙ путь. Никто никого силком не заставляет. Товарищ выдвинул предложение, его обсудили и осудили. Но благодаря стараниям общественности ветка жива и плодоносит откровенным флеймом.



    Если кто-то считает, что текущее положение вещей в ассемблере - анахронизм и удел динозавров - пускай. В конце-концов есть С++, Де#фи и прочие ЯВУ. Ассемблер не исчезнет никогда и такие как я преданные бойцы будут защищать нерушимость его идей и концепций, пока мы еще можем дышать.
     
  14. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    CyberManiac

    Кстати, под компонентом я понимаю не столько то, что можно "кидать на форму", а абстрактную сущность которая при взгляде снаружи имеет только идентификатор и интерфейс.



    Фактически, компонентная модель, о которой я говорю, будет претендовать на место COM сотоварищи. Однако, на мой взгляд следует сделать так:



    -- "независимость" от языка программирования - долой

    -- зависимость от windows - долой

    -- прочую туфту - долой



    Сделать, как завещал Эйнштейн: "так просто, насколько это возможно, но не проще".



    >> модерновую мнемонику только что сочинил: вместо add eax,edx - eax.add(edx)



    Вроде, такая шутка уже где-то была:
    Код (Text):
    1. class R32
    2. {
    3.   mov(int);
    4.   mov(R32);
    5.   mov(M32);
    6.   add(int);
    7.   add(signed char);
    8.  
    9.   ...
    10.  
    11. } eax,ecx,edx,ebx,esp,ebp,esi,edi;


    >> Причем не ассемблер, а метаассемблер, который бы

    >> из "своих родных" исходников генерил исходники...



    Бинарная независимость - одно из преимуществ компонентов.

    А для начала можно будет обойтись набором макросов...
     
  15. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Ну хочет человек ДЕЛАТЬ, зачем ему говорит: "у меня всё это давно есть, поэтому тебе это нах не надо.

    Вот возьми и положи здесь свою библу. Это же не должно нарушить идей и концепции ?
     
  16. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    captain cobalt >




    Здесь, как я понимаю, имеется ввиду FASM ? И первая проблема, с которой столкнёмся и не сможем решить - скорость компиляции. Да-да, препроцессор мощный, но не всемогущий :-(
     
  17. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    n0p



    Не ругайся.



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



    Однако, если "не доверять чужому коду" и "писать всё самостоятельно", то каждая программа на ассемблере будет ограничена знаниями только одного человека. А это очень мало. Всё знать невозможно.



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



    Как мы только что выяснили и подтвердили, "стандартная библиотека для ассемблера" при превышении некоторого (весьма небольшого) размера становится труднопригодна для массового использования.



    Компонентное программирование - хорошо зарекомендовавший себя подход. Однако, наиболее известные его модели ориентированы на использование языков высокого уровня. Я считаю, что если разработать компонентную архитектуру, в которой не будет ничего привнесённого уровнями абстракции языков высокого уровня и операционных систем, написанных на языках высокого уровня, то может получится что-нибудь очень хорошее...
     
  18. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    S_T_A_S_

    >> Здесь, как я понимаю, имеется ввиду FASM ?

    >> И первая проблема, с которой столкнёмся и

    >> не сможем решить - скорость компиляции.

    >> Да-да, препроцессор мощный, но не всемогущий :-(



    Ну, сказано же - "для начала"... ;)



    Кстати, компонентное программирование имеет преимущество также из за низкой скорость компиляции "крутых компиляторов". В то время, как в ООП в стиле C++ после модификации класса может потребоваться перекомпилировать всё, зависящее от этого класса, компоненты могут компилироваться абсолютно независимо...
     
  19. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Мета-Ассемблер, Компоненты... - уже три года работаю над этим... времени не особо хватает... семью кормить надо...
     
  20. dmit10

    dmit10 New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2004
    Сообщения:
    37
    Адрес:
    Russia
    У вас часто звучит фраза
    . Предполагается, комментировать, если не каждую, то почти каждую строчку, даже, быть может с вариантами альтернативного кода. Пример: QuickSort.



    сортируем массив a.



    функция Q(l,r)



    если (l>=r) выход

    ;если (l+1=r) меняем местами a[l] и a[r] - необязательно,но уменьшает время работы алгоритма



    выбор числа t:

    1)t=(l+r)/2

    2)t=l+random(r-l) ; иногда

    3)какой-то алгоритм (ещё не разбирался) из Кнута, уменьшающий среднее время работы



    присваиваем i=l j=r



    ПОВТОРЯТЬ

    пока (a<t) i++

    пока (a[j]>t) j--

    если (i>=j)

    {

    обмен a и a[j]

    i++

    j--

    }

    ПОКА (i<j)



    Q(l,j); Q(i,r);

    конец



    Вот извращенно записанный алгоритм. Как его реализовать? Можно же как на Си qsort - некий модный Кнутовский алгоритм выбора t, увеличивающий скорость на 8%. Так вот мне известны случаи, когда этот алгоритм приходилось переписывать заново, дабы заменить эту модную оптимизацию на простой рандом(!!). Почему, я бы предпочел не писать его заново? Дело даже не в том, что это отнимет больше времени..Нет, просто в этом алгоритме можно забыть, например, в условном блоке увеличить i и уменьшить j, особенно когда сортировка - не самое основное, что есть в твоем проекте. Можно такой сборник рецептов рассматривать как средство от очепяток.



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

    для каждой конкретной задачи уникально. Здесь простое копирование "стандартного" и вставка своего кода. А Ява-подобный новый синтаксис - уже извращение. Структурный ассемблер? Не знаю, еще не решил(изначально предполагается обычный ассемблерный код).



    Таков мой взгляд на наш проект. А shoo просто читает мои мысли