Оправдывает ли себя программирование на ассемблере под Win32?

Тема в разделе "WASM.HEAP", создана пользователем Morskoivolk, 30 янв 2007.

  1. Morskoivolk

    Morskoivolk New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2007
    Сообщения:
    85
    И все-таки если задуматься о существовании "золотой серидины" при выборе языка программирования, какой набор можно порекомендовать, опираясь на простое написание пользовательских приложений.....а не драйверов, вирусов и т.п., где знание ассемблера необходимо наверняка??
     
  2. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Morskoivolk

    Думаю просто: зайди на крупный сайт посвященный поиску работы. Там наверняка будет неплохая выборка, какие требуются программисты прикладного толка. Сейчас можно утверждать, что знание С++ - актуально, С# / Java - перспективно, Python / Ruby - экзотично но тоже перспективно. С учетом деформации рынка в сторону Web, можно так-же рекомендовать и скриптовые технологии изучать (JavaScript, PHP, HTML) - приложения в этом плане тоже надо уметь делать, в ряде случаев.
     
  3. Morskoivolk

    Morskoivolk New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2007
    Сообщения:
    85
    PHP,HTML.....я отношу к категории "познал за день, учил год".....ассемблер же - "учил год познал за день".....думаю после ассма...перейти на логику другого языка уже не есть проблема.
    Спасиба вам огромное дружищи!!!! за наставление на путь истинный, я тоже руководствовался такими же соображениями.....хотелось услышать непредвзятое мнение строннего наблюдателя)).
    Может кто порекомендует прогу для C++ чтобы как всегда .....меньше размера, больше скорости))) в моих кругах юзают Visual C++ послених версий...вроде 6....говорят рульная штука......еще Borland C++ Builder....говорят тож вроде ничего. Каково ваше мнение?
     
  4. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Morskoivolk
    Компиляторы неплохие предоставляются и MS и Intel. Если ориентироватся на все платформы - GnuC C (фронтенд, что транслирует Си в асм, и уже асм в бинарный код). Не надо стремится в данном случае к идеализму, особенно сейчас. Пока у тебя экспиренс дойдет до уровня опытного программиста, этих компиляторов сменится много поколений, и к тому времени тебе возможно эти качества компилятора будут до фонаря ;)
     
  5. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Ой не всегда!!! :))) Вот чтобы хорошо понят ООП, так сказать проникнуться мне пришлось не один день с другом пить пиво и читать Гради Буча! Но щас не жалею ;)
    Просто у каждого языка, свой аппарат мышления, это по мимо синтаксиса, бывает так что ты вроде бы все гда знал как нарисовать график, а на новом языке как слепой катенок! Дело тут не в опыте, а в мышлении!!!
     
  6. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Шестерка была последней лет 5-6 назад. Сейчас актуальна линейка Visual Studio 2005: http://msdn2.microsoft.com/en-us/vstudio/aa700921.aspx

    Visual Studio 2005 Express на халяву дают
    http://msdn.microsoft.com/vstudio/express/support/install/

    Но нужна относительно мощная машина. В шестой студии без проблем можно работать на слабой тачке, что я и делаю.

    Насчёт Билдера ничего не скажу. Сходи на форум rsdn.ru. Там много религиозных войн на эту тему. Через неделю чтения может сложится своё мнение ;)

    "Меньше размера, больше скорости", IMHO, больше от рук зависит. Среды разработки - это всего лишь инструмент, а остальное от мастера зависит.
     
  7. PaCHER

    PaCHER New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    852
    Вобщем "Оправдывает ли себя программирование на ассемблере под Win32?" - ДА оправдывает.
    А если ктото думает иначе, то ненужнобыло постить тему в этом форуме :)
     
  8. clone

    clone New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2006
    Сообщения:
    84
    alpet
    <offtopic>
    GCC == GNU Compiler Collection
    не ограничивается C и C++ (см. gpc, gcj, etc.)
    </offtopic>
     
  9. Morskoivolk

    Morskoivolk New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2007
    Сообщения:
    85
    недавно ломал прогу....и встретил таку вот беду.....в Нете нашел урок по взлому этой же проги тока ранней версии......так вот генерация алгоритма была представлена в 2-х варинтах: на Дельфи с ассемблерными вставками и с помощью чистого API без ресурсов и библиотек.....это получается что при добавлении библиотеки в файл посредством includelib мы тем самым его увеличиваем и снижаем производительность проги??
    и как вообще работает обращение к конкретной функции в таком случае??
    можно ли таким макаром вообще писать??
    кейген получился около 18 кб.....я считаю неплохо
     
  10. slackhead

    slackhead New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2007
    Сообщения:
    66
    а чем же мы здесь все занимаемся? этим только и занимаемся ;)
     
  11. Morskoivolk

    Morskoivolk New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2007
    Сообщения:
    85
    )))) так точно! не важно что и писать и где писать, важно какими руками и прежде всего головой)))
     
  12. Morskoivolk

    Morskoivolk New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2007
    Сообщения:
    85
    но все-таки чем Windows Api может быть привлекательным в его использовании?
     
  13. slackhead

    slackhead New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2007
    Сообщения:
    66
    дзеном
     
  14. Morskoivolk

    Morskoivolk New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2007
    Сообщения:
    85
    а подробнее?
     
  15. clone

    clone New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2006
    Сообщения:
    84
    Morskoivolk
    Тем же, чем libc в *nix -- абстрагированием от низлежащей системы. Т.е. функции WinAPI работают (с оговорками) одинаково на всех Windows (речь не идёт о <=3.11), а вот совместимость системных вызовов между поколениями/направлениями никто гарантировать не станет.
     
  16. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Тем, что это самый короткий путь обращения к системе. Любая библиотека - это посредник. Посредник берет на себя часть работы, упрощая обращения к себе, но при этом ограничивая твои возможности. Например, в WinAPI CreateFile требуется передать много параметров и флагов. Чтобы со всеми ними разобраться, требуется весьма много времени.

    Код (Text):
    1. HANDLE hFile = CreateFile(
    2.                            TEXT("myfile.txt"),
    3.                            GENERIC_READ,
    4.                            FILE_SHARE_READ,
    5.                            NULL,
    6.                            OPEN_EXISTING,
    7.                            FILE_ATTRIBUTE_NORMAL,
    8.                            NULL );
    Проще вызвать обёртку CreateFile: fopen("myfile.txt","r");. Возможностей управления fopen практически никаких, но зачастую они и не нужны, зато просто и быстро. А fopen сама знает как вызвать CreateFile. Вот и вся парадигма. Если нужно иногда открывать файл, то с какой скоростью будет работать fopen не имеет большого значения и можно смириться с небольшим увеличением размера программы из-за кода библиотеки-обёртки. Могут быть и другие плюсы, например кросплатформенность, т.е. ты обращаешься к библиотеке, а она сама разбирается в какой системе мы щас работаем. Ну это так... очень примитивно объяснил.

    ЗЫ: Что-то я разговорился ;) Исправлюсь.
     
  17. Quantum

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

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Morskoivolk
    Про динамические библиотеки вообще и про динамическую линковку в частности в 2х словах нормально не обьяснить. На сайте в разделе документов есть литература по этим вопросам, которой хватит на парочку недель вдумчивого чтения. Авансом могу сказать только, что при использовании внешних библиотек (они обычно имеют расширение DLL) в экзешнике создаётся таблица импорта (формат этой таблицы и куча нюансов по теме описаны в спецификации PE32/PE32+ COFF). В данной таблице хранятся имена используемых библиотек и имена публичных символов (функций), импортируемых из данных библиотек. Обращения к данным функциям в экзешнике проецируются на таблицу импорта. Когда лоадер загружает экзешник, он обрабатывает таблицу импорта, подгружая по ходу дела заданные библиотеки в адресное пространство процесса и занося реальные адреса импортируемых функций в таблицу.
     
  18. Morskoivolk

    Morskoivolk New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2007
    Сообщения:
    85
    Four-F Спасибо тебе огромное, это именно то что мои уши хотели услышать! точнее внутренний голос! по философски объяснил....миросозидающе! теперь я стал светлее!
    еще раз спасибо! заходи почаще в мой топик, я думаю нам будет о чем поговорить)))
     
  19. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Morskoivolk

    На мой взгляд самую правильную мысль высказал комрад EvilsInterrupt:

    Первое что обязан знать программист "Язык программирования это средство для выполнения поставленной задачи". Отсюда: "Какая задача?"

    Если ты не понимаешь, какие цели ты преследуешь, то будет лажа на любом языке, за какой не возьмись.
    Если же ты понимаешь эти цели, то тогда не ясно, почему у тебя возникают подобные вопросы.
     
  20. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    к посту Four-F, ещё прога становится зависимой от библиотек и без них не
    работает, а вот "чиcтый" Win API поставляется вместе с виндой, но это хорошо если
    ориентируемся только на винду, а вот если кросплатформенность, то без какой-нибудь
    либы абстрагирующей от осей не обойтись (исключение написать код этой либы в своём
    приложении :) )

    асм близок к машинному коду его постижение позволяет заглянуть на уровень железа,
    и в то же время посмотреть вверх и увидеть суть ОСей, приложений под них...

    писать под асмом так же как на с/с++ просто в с/с++ поумолчанию к
    приложению приложена (:)) стандартная библиотека с, а для асме с аналогами
    пока туго, можно конечно просто заюзать эту сишную либу (причём довольно просто),
    но это не дзенно: в проге на асме юзать либу писаную на си :)...