наверное когда-то также грустили наши отцы, когда уходили в небытие перфокарты и появился язык Цэ =) скоро программисты будут оперировать только исключительно черными ящиками и само понятие программист изменится - программистом будет каждая домохозяйка. по сути это уже за окном... так что ассемблер конечно изучать и практиковать надо, но только в свободное от работы время а вообще давайте посмотрим где реально требуется знание ассемблера: 1. отладка 2. вирусы (и то не всегда) 3. фирмваре (БИОСы например) 4. ?
Почитав спрошу "Куда делись талантливые преподаватели, где умные книги?" Большинство новичков приходят с вопросом "Какую книгу купить, чтобы стать умным по асму?" Вот основные вопросы, куда делся асм.
вот - есть хорошие уроки, статьи и ..всё такое и даже книги - но поставьте себя на место начинающего - сколько времени , сил и просто везения нужно, чтобы откомпилировалась без ошибок простенькая програмка ... написать бы руководство, с полным набором файлов и инструментов ... куда выкладывать только - на торренте админы вырубают раздачу, если там что-то бесплатное как-бы - туда же, куда и российские операционные системы и остальное програмное обеспечение - многие очень хорошие программы написаны россиянами - группами энтузиастов, как правило вопреки общей тенденции к тупости и формальному времяпрепровождение в учобных заведениях с основной целью - отлынить от нашей ублюдочной КА и поволять как можно дольше дурака...
в эпоху капитализма конечная цель любой организации - максимальная прибыль. по большому счёту, чтобы получить прибыль - не нужно даже создавать. проще спекулировать на том, что уже есть или кем-то создано. вот и получается - зачем что-то создавать, искать талантливых людей, а если даже и создавать, то зачем делать это качественно? так зачем нам эльбрусы (российские процы), оси и всё остальное, если уже есть x86, windows? на одном энтузиазме далеко не уедешь.
Blackbeam чтобы написать качественный урок или книгу надо иметь талант. Тут важно знать где добавить "водицы" для формирования общей картины, а где убрать лишний трёп. Самое доходчивое пояснение - это разного рода примеры на базе решаемой задачи + тысячи мелочей, которые и заваливают большинство работ для новичков. Полный набор файлов думаю не поможет, если не знать с чего начать и как всё завязано. Соглашусь только, если совсем новичок и он учит "Привет мир".
Для того и есть статьи и уроки, в них уже готовый рабочий код, который надо просто скопировать в какой-нибудь WinAsm и нажать кнопку Собрать. Ну и разбиратся как работает, никакой магии нет тут) не согласен. В кач-ве урока по программированию сойдет любая рабочая программа с минимальным описанием того как она работает. А остальное уже пусть сами учат, если желание есть то научатся, если нет то и фиг с ними)))
onSide ты прав, но если книга говно, то тут уже не поможешь. Количество граблей не даст новичку больше ума, чтобы понять код нужно понять основу: задача, технология и решение. Только так можно постичь код, поэтому грамотная книга + правильно оформленная книга = хорошая база для приобретения опыта.
NeuronViking Не знаю, я давно уже не заглядывал в асм-листинги своих программ. И надеюсь не понадобится. Втыкать в километровые листинги удовольствия мало. Да и зачем? Я не думаю, что очень удобно отлаживать, например, многопоточное приложения или асинхронную работу с сетью на низком уровне. Для этого есть удобные высокоуровневые средства, которые экономят массу времени и сил. Т.е. опять же, с увеличением сложности проекта применение низкоуровневых средств обходится всё дороже и дороже.
код который вы называете мусором отвечает за быструю развертку приложения - в вырожденных случаях там все в заглушках - 30кб заглушек по сегодняшним меркам многомегапайтный приложений - пустяк
из моих глупых прог АСМ никуда не девался, живет и процветает в виде изобильных вставок в Дельфы, причем как раз в тех местах, где без него просто невозможно. Это задачи с длинными числами, кодированием, MMX и SSE2, хотя последнее необязательно... Разумеется, можно было бы попытаться воспользоваться какими-то библиотеками и готовыми компонентами, но покрайней мере тем людям что будут их создавать тоже будет нужон АСМ. Это про вставки в языки высокого уровня. А вот чисто АСМовсие проги на ФАСМе с invoke и кучей вызовов в винду - этим искусством я никогда не овладею, да и нужно это только для вирусов и троянов.
Зачем нужен асм? Затем, чтобы ни у одной сволочи рука не поднялась написать строчку x=fucktion(y)+fucktion(fucktion(y))
SPA А бесполезно. Всегда можно написать такое, что ни один компилятор не переварит. В общем случае выполнить такую проверку невозможно. Другое дело, что если fucktion(y) при способна менять собственную логику работы при каждом вызове, на вызов fucktion(fucktion(y)) компилятор должен выдавать предупреждение "чувак, ты правда надеешься это отладить?!".
CyberManiac, а как асм то поможет в этом? Из того, что человек знает ассемблер не следует, что будет писать оптимальный код. К тому же твой код неоднозначен. А если fucktion это шаблонная функция или она перегружена для нескольких типов? В таком случае такая запись, что у тебя и будет оптимальной.
W4FhLF По крайней мере, он будет знать, что каждый вызов транслируется в push-call-ret и что в данном случае fucktion(y) вызовется 2 раза, хотя можно обойтись одним, если использовать временную переменную. А шаблоны, в силу их еретической сущности, надо вообще истребить с лица земли специальным крестовым походом.
Для этого не надо знать ассемблер. И я не раз встречал людей знающих ассемблер и пишущих неоптимальный код. Научись ими пользоваться там, где они нужны и не надо истерик. PS Если бы шаблоны были ненужной приблудой С++ мы бы не видели их в других развитых языках. Даже в умирающий делфи добавили.
W4FhLF Там не ублюдочные препроцессорные выверты, а расово полноценная поддержка на уровне компилятора. А главное - это НЕ шаблоны. И что-то мне подсказывает, что "не дождётесь"
CyberManiac, ну не будет оффтопить. Не знаю, что там у тебя с препроцессором приключилось, но это к шаблонам С++ отношения не имеет.