Перспективен ли asm?

Тема в разделе "WASM.ZEN", создана пользователем kernel_mode, 9 май 2007.

  1. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    тот код, который ты привел - это уже слишком для фасма. я считаю что надо наработать достаточно большую базу хороших и часто используемых процедур, чтоб чуствовать себя, программируя на асме, комфортно. я тоже пишу на фасме, не пытаюсь превратить его в ЯВУ или приблизить, так как мне неудобно писАть на ЯВУ, тем не менее я его пытаюсь сделоть максимально удобным для себя. для этого фасм имеет очень гибкую и удобную систему макросов. под линух тоже программел нимного, но забросил т.к. там нет необходимого удобного инструментария и он заточен вобще под СИ.
     
  2. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    kaspersky
    а разве при построении компилляторов для того же с++ не возникают те же проблемы - процы слишком разные, но меж тем с++ код на разных процах идентичен, хотя его фундамент (асм код) разный??
     
  3. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    Платформенно-независимый язык ассемблера существует. Это язык IL - Instruction List из стандарта IEC-1131 на языки программирования для PLC.
     
  4. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    kaspersky

    ассемблер же это... игра без правил - Хм... Точно подмечено, особенно с выходом Vist ы, где даже админу не все позволено. Собственно подойдет и такое сравнение - DOS и Windows 9x - это уровень ассемблера, а линейка NT - высокоуровневое программирование.
    Что касается необходимости в изучении асма - то всегда будут люди, которые не хотят играть по правилам написанным каким-то дядей (Б.Гейтсом), и будут заставлять плясать комп по своим правилам. Наверное я кним отношусь, особенно после того как мой бывший Pentium III 500 Мг, спокойно без напряга проиграл фильм в AVC формате mp4, без задержек прогой написанной на асме. Скорость работы копма зависит не от проца, а от прямых ручек.
     
  5. MrHammer

    MrHammer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2003
    Сообщения:
    197
    А почему он должен тормозить при проигрывании mp4?
     
  6. MrHammer

    MrHammer New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2003
    Сообщения:
    197
    Вот еще мысля. Есть понятие низкоуровневное мышление/программирование (программирование железок, прошивка, работа с конкретной системой), и программирование на ассемблере (если можно это так назвать). Зачем привязывать одно к другому?
     
  7. Miller Rabin

    Miller Rabin New Member

    Публикаций:
    0
    Регистрация:
    4 янв 2006
    Сообщения:
    185
    FreeManCPM
    Как Linux может быть заточен под CИ?
    Может быть ты имеешь ввиду работу c C RunTime Library? Чтобы обеспечить большую совместимость с разными дистрибутивами.
    По поводу вызова функций из C-RunTime Library есть даже документация на flatassembler.net. Это не сложнее, чем вызывать аpi функции.

    PROFi
    Без комментариев.

    А вообще зря ввязался в этот топик. На такие посты по-моему даже отвечать не следует
     
  8. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    Miller Rabin
    это не более, чем красивое выражение - правила диктуются самим процом, да, и вообще, такого понятия нет в природе "игра без правил": всегда есть факторы, на базе коих формируются конкретные правила.
    программинг в основном состоит из типичных задач, а стало быть, большая часть кода может быть многократно использована в других проектах.
     
  9. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    UbIvItS

    > а разве при построении компилляторов для того же с++
    > не возникают те же проблемы - процы слишком разные,
    > но меж тем с++ код на разных процах идентичен,
    > хотя его фундамент (асм код) разный??
    проблемы, конечно, возникают и я уже приводил пример в котором компилятор не может класть переменную в регистр, хотя человек бы положил. но это мелочи. в целом, в языке си всегда видно, когда происходит обращение к переменной, поскольку это напрямую следует из синтаксиса языка. а вот в ассемблере это уже невозможно, поскольку если мне захочется извернуться, то я могу обращаться к переменным (в том числе и локальным переменным чужой функции) сотней способов и потому определить куда именно обращается, например, команда MOV eax,[ebx] можно только в рантайме, а это уже эмуляция, а не компиляция.
    если программа на яву состоит из высокоуровневых конструкций, каждая из которых может быть "переведена" на язык данного ЦП с учетом его архитектурных возможностей, то на асме в силу его низкоуровневой природы эти конструкции приходится еще "добывать".
    в общем достаточно попытаться написать свой транслятор ассемблера, чтобы понять суть проблемы. я пытался сделать такое для x86-32 -> x86-16, но неасилил, плюнул и присобачил эмулятор, который оказался намного эффективнее, чем прямые попытки трансляции.
     
  10. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    kaspersky
    согласен - главный + асма - это богатство возможных решений одной и той же задачи, что собственно и даёт возможность очень хорошо оптимайзить код, а при конвертации мы этот плюс потеряем.
     
  11. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    MrHammer
    mp4 в AVC формате

    kaspersky
    > но меж тем с++ код на разных процах идентичен - да в ANSI его вариации.
    Но, к примеру, даже не стоит пытаться пробовать смешать код Borland C и MS C. А что касается ассемблера - то поскольку я принадлежу к программистам классикам и пишу на tasm (tlink32 конечно пришлось переделать начиная с подсчета контрольной суммы и заканчивая созданием драйверов), то если не использовать макро, вполне можно создать программу которая компилируется и на masm.

    Но вопрос по видимому вот в чем:
    - если ты хакер в хорошем смысле слова, и занимаешся исследованием программ, то большинсво задач при условии зания процессора и ассемблера в меньшей мере, довольно просто решаются имменно на асме, посколку при использовании си иногда приходится идти на компромисы.
    - если ты программер (да еще на заказ) - то здесь только Delphi, или VB. Причина - как-то друг работающий на фирме попросил меня о неболшом модуле на си, так вот на си я это реализовывал около недели, но были ошибки, тогда в течении дня все было реализованно на Delphi.
    Таким образом использование языка програмиирования определяется поставленными задачами, на ассемблере лечгче писать стелс, базонезависимый код отладчика.
     
  12. kernel_mode

    kernel_mode New Member

    Публикаций:
    0
    Регистрация:
    6 май 2007
    Сообщения:
    14
    Вопрос вот в чём: стоит ли переходить целиком с c/c++ на асм. Желание то есть, но т.к. иду на программера, то от этого и толк должен быть, а есть ли он?
     
  13. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    kernel_mode
    не надо впадать в крайности: программинг это компромис между удобством, скоростью и качеством разработки;)
     
  14. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    kernel_mode
    Сейчас гораздо актуальнее вопрос: стоит ли переходить целиком с асма на С с двумя, а то и четырмя плюсами (то бишь С#).
    :)
     
  15. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    green
    ты некорректным вопросом задаешься:): c# сделан для задач сугубо прикладного значения - его код будет без изменений пахать на разных процах и осях, вообще, даже стоит говорить не о самом с#, а о дот нет.
     
  16. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    Востребован ?, Интересно, где ? на людей с такими знаниями работодатель смотрит как на чекнутых, им такие нафиг не нужны, подавай билдеристов дельфистов и прочих анонис...
    Да, видимо ява людей никак не устраивает. Типа микрософт сказал .net - это модно и все кинулись в дот нет, IMHO - стадо баранов управляемое корпарацией... а через год микрософт придумает новое г-но и скажет что это круто и все как один кинуться набирать себе штат сотрудников работающих с говно-нет.
    Случай из жизни:
    Прибегает чувак из соседней конторы (как раз на дот нете пишут) и спрашивает: как мне данные, хранящиеся в переменной типа INT интерпретировать как float32 ? на что последовала емкая строчка С кода:
    f_val = *(float *)&i_val;
    а он и говорит: уууу, это небезопасное присваивание, у нас так не получится.
    Вспомните COM, ATL, MFC теперь .NET - места в мозге не хватит чтобы все содержать...
    А асм или С менялся ? жаль только это невостребовано сейчас...
     
  17. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    Exception13
    мне .net больше нравится, а жабу я не люблю - пусть она маздай сделает:)) - да, и дотнет пашет быстрей. А, вообще, людям почему - то всё нравится мешать в одну кучу - жаба, с++, асм: один у себя на сайте, на полном серьёзе доказывал, что жаба - это замена с++ - каждый язык решает свою область задач, есть инструментарий, у коего область одинакова, например, жаба и дотнет и надо чётко понимать область применения.
    язык програмирования в статике оставаться не может - сколько было в асме команд раньше на процах 16 разрядных, а сколько теперь или SSE и на них были;)
     
  18. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    вопрос спорный...
    асм - статичен в плане твоего же сознания, которое не требуется ломать. Если ты умел программировать на Z80 и при переходе к 8086 у тебя появляется новая возможнасть - умножение, деление и пр. ДА - это развитие, но тебе не надо менять стиль мышления, лишь расширять его.
    Язык С - см. NIX системы там вроде как с 89 года ничего не менялось (ANSI X3.159-1989) только расширялось за счет огромного количества библиотек на все случае жизни.
    я бы все же стал рассматривать продолжительность жизни того или иного языка, а то получаетеся так - сегодня модно, завтра уже нет.
     
  19. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    у меня знакомый есть, на дотнете кодет, ходит всем кричит, что дотнет форева. говорит мол как ты на асме сделаешь вот связь с базой да еще и красивую таблицу на форме за несколько кликов...
    но ведь эти компоненты тож надо разработать, чтоб было так просто взять и кинуть на форму...
     
  20. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    а можно взять все уже готовое, ведь с 89 года написано столько что перекрывает потребности в создании нового языка, хех тока микрософту то надо деньги зарабатывать... А асм - это уже оптимизация и хорошая разминка для мозгов.
    может кто то скажет что дот нет это быстро, сильно сомневаюсь, он слишком молод чтобы покрыть наши любые прихоти. Проще изучить новую библиотеку С и использовать её для решения своих задач, чем переписывать то что уже изобрели до тебя.