Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Asm: Общие вопросы > Кто такие асм-программеры? |
Автор: mardok 12.7.2007, 20:03 |
Сдал я курсач по асму и был рад как слон ![]() для меня это какой-то феномен.... |
Автор: JAPH 12.7.2007, 20:12 |
Мозахистов не существует ![]() флейм? |
Автор: W4FhLF 12.7.2007, 20:57 | ||
|
Автор: try_to_get 16.7.2007, 09:42 |
Спасибо, W4FhLF Классная цитата! |
Автор: JackYF 16.7.2007, 12:55 |
mardok, для многих специализированных процессоров не существует компиляторов ЯВУ и можно писать только на ассемблере, их собственном. Кроме того, есть задачи, которые кроме как на ассемблере, ты не решишь никак. Критические участки кода системных компонентов тоже могут быть написаны на ассемблере, если важен каждый такт. Настоящие астматики (ассемблеристы) - это и мазохисты и гении одновременно. |
Автор: try_to_get 16.7.2007, 20:44 |
JackYF +(плюс) |
Автор: setty 20.7.2007, 04:57 |
откуда берутся такие темы? |
Автор: JackYF 20.7.2007, 05:49 |
люди создают. |
Автор: morfus 8.8.2007, 06:02 | ||
+1 Для примера я писал как-то код для Z80 так ни один компилятор не смог мне дать нужного быстродействия. (на таких процах каждый такт на вес золота) |
Автор: morfus 8.8.2007, 09:23 |
Я и сейчас иногда пишу, только раньше (в 89-93 годах) писал для дела, а теперь изредка для удовольствия... (в основном коротенькие "фишки" байт на 100-200) |
Автор: leshiysoft 8.8.2007, 16:31 | ||
Полностью согласен... Писать в машинном коде это и ужас и полет мысли одновременно. Сейчас правда пишу максимум на асме, но уж никак не в машинных кодах. (-: |
Автор: try_to_get 8.8.2007, 18:44 | ||
Ну... можно и попробовать ![]() |
Автор: morfus 9.8.2007, 05:21 |
try_to_get, если решишься сначала попробуй что нибудь простенькое. Я например когда начинал знакомство с машинными кодами на х86 то делал "slidesow" на загрузочной дискете. Честно скажу, практического применения этой программе я не нашёл, а вот удовлетворение получил. (сейчас даже не вспомню какой это год был, но явно более 15-ти лет назад, это была моя первая программа в кодах для x86 совместимых компах, до этого писал в основном для Z80) Вся программа была в первом бут-секторе, она читала по 8 секторов в область экрана и ждала нажатия кнопки (режим 320х200/4цвета а в соответствующих секторах были картинки) затем читала следующие 8 секторов... |
Автор: try_to_get 9.8.2007, 09:55 |
morfus , прикольно! ![]() |
Автор: somewhere 9.8.2007, 14:48 |
У меня в машинных кодах под Z80 был редактор растровых изображений с поддержкой анимации. Весил он около 6 кило. В машинных кодах это было ого-го. С учетом того, что видел только 20 байт (1 байт - одна строка, слева адрес, посредине содержимое) вычислять относительные переходы было самым тяжелым. Еще были наработки для записи и воспроизведения звука с магнитофона. Правда на оставшиеся в распоряжении 35К вмещалось всего 5-6 секунд звука. Но зато прикольно было что-то записать, а потом воспроизводить на внутреннем динамике шипящий и покореженный звук. Ведь где-то это все лежит на кассете, а может и выкинул давно - все равно от тех дней остались самые приятные воспоминания. Уже потом, когда появился у меня 486 DX4 100 с жестким на 425 (!) мегабайт я никак не мог понять ПОЧЕМУ свободно только 300. Что могло занять целых 125 с лишним МИЛЛИОНОВ байт. Привыкать к этому было тяжело, а к современным ОС на 6 гигов еще тяжелее... :-( |
Автор: morfus 10.8.2007, 07:52 | ||||
Делал такое, потом с ужасом обнаружил что есть уже готовая прога 82-го года Speak Easy называется (занимает около 100 байт)
Меня это не особо удивляет, скорее просто раздражает. ИМХО создатели современных ОС забыли что такое ОС и начали просто клепать DE (DesktopEnvironment) для "эникейщиков". Причём 99% кода написано на языках очень высокого уровня, что ставит крест даже на надежде получить хоть какое нибудь быстродействие. Я не призываю писать ОС на асм, просто говорю что если так дело пойдёт дальше то в будующем ОС будут писать на JavaScript а для её запуска в оперативу будет загружаться 20-гиговый браузер, имхо всё к этому идёт. |
Автор: somewhere 10.8.2007, 08:23 | ||
А так все хорошо начиналось. Кто-нить пробовал ставить 95 OSR2 на современный комп? Работает быстрее мысли... будем надеется, что технологии все же достигнут своего теоретического предела (на ЖД например нельзя записать больше бит, чем число молекул, из которого он состоит). Человеческая лень дошла даже до своего собственного творения - высоких технологий. Интересно, помимо разработчиков драйверов и моб. прошивок кто-нить еще пишет на асм? Молодое поколение знает вообще о нем? |
Автор: W4FhLF 10.8.2007, 08:36 | ||
Это ты про какую ОС говоришь и что значит "язык очень высокого уровня"? |
Автор: try_to_get 10.8.2007, 09:07 |
наверное он имел введу винду, а язык наверное обычный, слово очень добавил наверное от души?! ![]() |
Автор: morfus 10.8.2007, 09:07 | ||
Молодое поколение ограничивается знанием того что он есть. |
Автор: try_to_get 10.8.2007, 09:09 |
Мне как то интересно стало изучасть АСМ я почти понял как все работает ![]() |
Автор: morfus 10.8.2007, 09:12 | ||
Ты прав, я часто приувеличиваю. Говоря более разумным языком сейчас в винде очень много "избыточного кода" крутится вокруг каждого действия. Рано или поздно дойдёт до того что чтоб узнать размер файла на диске винда будет связываться со спутником а он будет сканировать ваш диск из космоса чтоб определить сколько занимает файл. Но что-то мы в офтоп спустились, давайте ближе к асму вернёмся. |
Автор: try_to_get 10.8.2007, 09:19 |
morfus ![]() |
Автор: W4FhLF 10.8.2007, 09:40 | ||
От незнания или лишь бы сказануть? Скачай исходники и посмотри на чём написана Windows.
Зато в DOS'e у нас не было "избыточного кода", как было здорово... Знаешь, я тоже могу кучу гадостей наговорить, обвинить в чём-то, но со стороны это смотрится как обычный трёп. |
Автор: somewhere 10.8.2007, 09:56 |
Так все же пытаясь подвести итог кто такие асматики... Когда у нас болят почки или сердце мы идем к врачу. Он выписывает нам лекарство, и если оно не помогает он говорит, что нужна операция. Но если хирург тоже ничем не может помочь - что тогда? А теперь представьте себе "лекаря", который вылечит вашу болезнь на молекулярном уровне, сам создаст все химические соединения, которые были утеряны или взаимодействуют не так. Так вот, вся система - это организм. Доктор - это программист высокого уровня. Хирург - это WinAPI программист, "лекарь" - это программист на ассемблере, тот по вине которого собственно и произошло начало развития информационных систем. |
Автор: morfus 10.8.2007, 10:48 |
Был и не мало, однако скажите мне, почему перед тем как открыть папку и вывести мне список 3-х файлов их размер и дату (что в DOS делается за сотую секунды даже на 286-м) я в Vista должен ждать пока он посчитает с помощью школьной линейки расстояние до марса, потом исходя из количества звёзд на небе определит настроение беременного волка в техасе, после чего выдаст мне простой список который ничем толком не отличается от того что в DOS ? Видел, (Win2000) написана в основном на С++ но front-end на VBScript т.е открыв окно винда сразу получает список файлов, а вы пол часа ждёте пока куча парсеров распарсит кучу файлов чтоб прочитать их (в Win98 решили интегрировать WindowsExplorer в IE придумав девиз "интернет на рабочем столе", в XP пошли ещё дальше и 99% оформления винды перенесли на интероператоры того чтоб каждый ламер который знает основы бейсика мог писать скины для винды) А вы это лишь бы придраться ? |
Автор: somewhere 10.8.2007, 11:02 |
Все это плавно переходит в другую тему. Можно добавить лишь одно... Всем наверное известна "оптимизационная" лазейка при установке винды XP, когда давишь на F5 и сам выбираешь процессор, для которого нужно установить файлы ядра... При этом скорость работы действительно возрастает от 5 и выше процентов. Так значит могут хорошо писать. Так, чтобы быстро работало... Просто невыгодно это никому. Кто тогда купит Pentium Core2Duo если и на Pentium III у него все замечательно и быстро работает... Ежу понятно, что есть в мелкософте хорошие прораммеры, способные писать хорошо структурированный и быстрый код... Только дяде билли мало его миллиардов зелени... Прошу прощения за Off-topic |
Автор: dumb 10.8.2007, 11:08 | ||
беда в том, что многие "лекари" до сих пор пользуются "пусканием крови", и не обращают внимания на достижения тех.прогресса - такие как микророботы, прецизионные манипуляторы итд. плохо "видел": ++'ами там и не пахнет. совсем плохо "видел". ерунду, мягко сказать, говоришь.
![]() тема вообще какая-то... пардон за переход на личности, но забавно выглядят эти "вот в наши времена - оооо... да, в наши времена - ууу.." последних активных участников этой темы, которые, похоже, зарегались на форуме на предмет побрюжжать... ![]() |
Автор: try_to_get 10.8.2007, 11:09 |
Ну хватит, сейчас еще подеремся... ![]() |
Автор: morfus 10.8.2007, 11:46 |
Мне известно что чуть ли не в прошлом веке один из сайтов запостил это на первое апреля (только написал не прирост 5% а то что будет летать даже на 386-м) видимо не все смотрели на календарь и приняли за чистую монету. |
Автор: Lazin 10.8.2007, 12:04 | ||
asm используют в основном для контроллеров, и то лишь частично, так как С компиляторы генерят довольно качественный код. Для RISC процессоров довольно трудно кодить на асме, там компилятор соптимизирует лучше, представьте что у вас десятки регистров общего назначения, в которых могут оставаться промежуточные результаты вычислений.
В висте выводятся не только атрибуты ф-а, а информация зависящая от типа файла - например тэги для mp3 разрешение для изображений и тд. И работает это довольно шустро. Не стоит так-же забывать что виста может в это время в фоне что-нибудь делать. |
Автор: somewhere 10.8.2007, 12:20 | ||||
Не знаю, как в прошлом веке, но год назад лично ставил винду через F5 - освободилось 16 метров памяти + прирост скорости.
Не только в висте, но в XP то же самое. Только опрос около 500-сот песен занимает секунд 10. Много ли времени надо, чтобы прочитать с конца файла 288 байт тэга, даже с учетом Track-To-Track HDD около 50 мс. выходит просто запредельное время. Он там наверное интегралы считает, когда выводит длительность звучания песни? |
Автор: morfus 10.8.2007, 12:51 |
Мдя, начали за здравие .... |
Автор: try_to_get 10.8.2007, 14:59 |
Надо закрывать тему, срочно...![]() ![]() ![]() T O P I C I S C L O S E D |
Автор: mardok 10.8.2007, 20:19 |
ну что же....сделал я выводы: Асм-программеры - это психи, которых беспокоит нечто вроде "Слайдшоу на 4 цветах" или процессор Z80 (ходят слухи, что его юзали еще при царской России) ![]() В общем я так предпологаю, что большенство из людей останеться Win-зомби как и я в том числе....и лишь тень черных магов - асматиков( ![]() Вкстати, гредёт Великая Осевая Война (ВОВ)!!! между армиями полководца Пингвиниуса(Linux) и его свирепого противника Билигейца Форточкосозедателя....К рядам чьей армии примкнут клинки(клавы) черных магов - асматиков??? |
Автор: try_to_get 10.8.2007, 21:36 |
![]() |
Автор: morfus 11.8.2007, 00:26 | ||
Поставь себе памятник, ты всех нас раскрыл ![]() |
Автор: MAKCim 12.8.2007, 23:23 |
во-первых, всем привет, я вернулся ![]() теперь по теме сегодня я вижу использование ассемблера в следующих ситуациях 1. Архитектурные особенности конкретного CPU, которые прямо не выражаются посредством ЯВУ (системные инструкции и доступ к пространству I/O) 2. Оптимизация в любом виде a) MMX, SSE, ... b) Оптимизация операций с использованием специальных инструкций CPU (которые компилятор не сможет сгенерировать в общем случае (к примеру bt, btr, bts)) в ядерном API практически любой ОС (Window$ и Linux 2.6.* точно) есть т. н. HAL, который определяет неизменные интерфейсы на ЯВУ (С) к различным архитектурным вещам поэтому тут ассемблер даже вредит (теряется переносимость на уровне исходников) значит остается пункт 2, в особенности подпункт а) |
Автор: Severyanin 13.8.2007, 10:54 |
Иногда просто бывает нужно в контролере написать некие часто вызываемые функции более оптимально. Тогда асм и необходим. Не всегда компилятор помогает ![]() |
Автор: try_to_get 13.8.2007, 15:51 |
Драйверы тоже пишут на асме. |
Автор: somewhere 13.8.2007, 16:03 |
Не только драйверы, но и всякие кодеки, декодеры аудио и звука, миксеры и т.д. , потому что на языках высокого уровня даже MPEG декодер будет медленнее в несколько раз. |
Автор: MAKCim 13.8.2007, 16:43 |
кто вам такое сказал? нет, я не спорю, написать-то можно, но пишут ли? посмотрите тот же Linux, все модули (aka драйверы) написаны на С |
Автор: try_to_get 13.8.2007, 17:28 | ||
ё*** снова за свое... ![]() |
Автор: MAKCim 13.8.2007, 17:40 |
try_to_get, не знаю, что вы имеете в виду но я не вижу в своем посте ничего ужасного все - чистая правда |
Автор: try_to_get 13.8.2007, 18:25 |
MAKCim Это я про вечную войну Windows(W) и Lunix(L). Чуть ли не на каждом сайте спорят что круче W. или L.??! Или в реале, людей встречаю которые об этом говорят. Наример один начал мне про Винду расказывать, хорошо что он про нее говорил, но зачем надо было упомянуть L. . Или наоборот говорят про Lunix и начинают обс**** Windows. Зачем ну вот зачем это, нравится Lunix или Windows пользуйтесь ну не надо закидывать другое творение... ![]() Добавлено через 2 минуты и 21 секунду Извините, от темы ушел! |
Автор: MAKCim 13.8.2007, 18:41 |
try_to_get, н-да в моем посте не вижу никакой войны, вы бы по-лучше прочли для начала а то увидели слово Linux...и сделали поспешный вывод Linux привел лишь как пример по большому счету в Window$ должно быть тоже самое никто драйвера на ассемблере писать не станет ![]() по поводу L. vs W. все познается в сравнении |
Автор: dumb 13.8.2007, 18:42 |
try_to_get, тебе про фому, а ты про ерему: причем тут вообще этот холи-вар?! тебе сказали, что драйвера практически не пишутся на асме и привели пример. в винде, кстати, абсолютно такая же ситуация. и к Вам, уважаемый, взываю: прекратите уже наконец пороть чушь - она маленькая и слабая, и не заслужила такого жестокого с ней обращения! |
Автор: Lazin 13.8.2007, 20:46 |
try_to_get в программировании контроллеров та-же ситуация, всё на С, изредка на асм. В visual studio можно использовать SIMD расширения без ассемблера. зы Мне кажется знание асма необходимо для понимания архитектура процессора. |
Автор: morfus 15.8.2007, 19:17 |
По этому поводу вообще не нужно ничего говорить (это история из другой оперы) А по теме топика ASM нужен там где 1 - компилятора не существует 2.1 - проц слишком медленный чтоб компилятор мог "обогнать" человеческий мозг в вопросах оптимизации 2.2 - надо написать процедуру которая будет выполняться в цикле миллиарды раз и по этому каждый такт на счету (причём вариант 2.2 это редкость, обычно он избегается грамотным планированием приложения) |
Автор: RodeGO 18.8.2007, 17:47 |
По топику... АСМисты, не владеющие машкой - 50% - проф. програмеры (т.е. разновидность психов ![]() Любители МАШКИ - дикий коктейль из мазохистов и экстрималов с легким привкусом камикадз. Ну, это правда мое мнение, а поскольку я в реале не видел еще никого, кто реально проги писал-бы на машке (кроме того небритого и заплывшего холостяка в зеркале), сужу по себе. |
Автор: MAKCim 18.8.2007, 17:59 |
RodeGO, машка = машинный код? если да то не вижу никаких сложностей в его использовании опкоды всех инструкций запомнить, имхо, никто не в состоянии а с описанием...ничего сложного, только долго |
Автор: LamerTM 15.9.2007, 08:19 |
Раньше писал на асме под Z80. Скорости были космические. Естественно в сравнении с BASIC. Всё летало. Даже свой ассемблер (компилятор то есть) стал писать. ![]() Потом стал писать на Delphi на своём AMD Duron (к какому типу процов он относится как-то не в курсах). Однажды решил я переделать один блок на асм. Переделал, и скорость ни фига не возрасла! Я был в шоке. По-моему даже слегка упала, правда в пределах погрешности оценки. При анализе причин такого странного поведения я обнаружил, что компилятор Delphi формирует готовый машинный код, совсем не так как это было на Sinclair. На Sinclair (проц. Z80) прога на BASIC фактически была текстом, который исполнялся интерпретатором. Именно из-за этого было то фантастическое торможение. Проги на асме в первую очередь писались чтобы обойти этот чертов интерпретатор. Он был главным тормозом и ограничителем на использование ресурсов компа. Все остальные примочки, как то приемы направленные на выигрыш нескольких тактов, были лишь бонусом. Разница между работой через интерпретатор и напрямую на асме была не просто ощутимой, - это было небо и земля. Тогда на меня (да и не только на меня ![]() Сейчас языки высокого уровня не имеют интерпретаторов (что было для меня открытием) и сразу компилируются в машинный код. Иногда бывают лишние команды, конечно, но в основном всё тип-топ. Я сам проверял. ![]() |
Автор: somewhere 18.9.2007, 11:40 | ||
Ну хорошо, напиши преобразование Фурье на Дельфи - то самое, которое идет в MP3 - посмотрим во сколько раз на ASM быстрее. Не спорю, в ООП выигрыша нет почти никакого, но вот в реализации математических алгоритмов - тут я в корне не согласен. |
Автор: W4FhLF 18.9.2007, 12:18 | ||
Дай для начала свой оптимизированный вариант на ассемблере, а потом скажи, что из него невозможно реализовать в рамках возможностей компилятора Delphi. |
Автор: somewhere 21.9.2007, 12:38 | ||
Ну хотябы вот-такой конверт из моей проги, кто обгонит на Дельфе, тому +1 ![]()
|
Автор: W4FhLF 21.9.2007, 15:03 | ||
А программа на чём написана? Запомни, dasm - это полноправная часть языка Delphi и компилируется она компилятором Delphi и разделять их неккоректно. |
Автор: W4FhLF 22.9.2007, 17:35 |
somewhere, кстати, посмотрел сегодня внимательней и посмеялся. А что там обгонять-то, две процессорные инструкции?![]() ![]() |
Автор: somewhere 25.9.2007, 09:47 |
fild word ptr [esi + ecx*2 - 2] Это что, Дельфи? Процессорные инструкции - это Дельфи? Вот В том, что на Дельфях, не на асме, выйдет гораздо медленнее. Кто нибудь видел код, который генерит Дельфи? Есть там SSE или хотябы MMX? Вот в том и дело, что кроме асматиков эти возможности никто не использует... Вот к чему я... |
Автор: W4FhLF 25.9.2007, 12:49 |
А что такое Делфи? Процессорные инструкции кто компилирует, святой дух чтоли? В твоём случае - это dasm - delphi assembler. Он часть языка Delphi и часть компилятора Delphi. Дай определение всех переменных, я перепишу и погляжу. |
Автор: somewhere 26.9.2007, 10:07 |
Я имел ввиду, что если писать ту процедуру на Паскале, типа For i := 1 to fBufferSize do Buffer[i] := .... выйдет очень тормозно, я не грешу на dasm, но в рамках возможностей языка Дельфи(Паскаль) быстрее сделать этот конверт не получится, т.к. механизм оптимизации кода компилятора не обладает такими возможностями, нежели сам асматик Это все ни к чему, код процедуры TWaveLet.LoadBuffer16 будет таким же, как я и написал. А вот код, который генерится компилятором Паскаля для строк вида For i := a to b do floatmem32[i] := integermem16[i] ужасен и требует доработки компилятора. Чуть позже скину то, что он генерит, но наверное от этой темы это уже далеко... |
Автор: morfus 27.9.2007, 00:56 | ||
"чтобы обойти этот чертов интерпретатор" были компиляторы (HiSoft, Blast, Mcoder, и.т.д.) и они давали ощутимый прирост, но "приемы направленные на выигрыш нескольких тактов" в свою очередь выигрывали ещё больше. (а при частоте проца в 3.5Mhz в прямом смысле каждый так на счету) Раньше (во времена когда ещё не было процев даже в 50MHz) ASM позволял СИЛЬНО уделать по скорости любые откомпилированные программы, сейчас само собой преимущество в скорости (в большей степени благодаря кешу в процессорах) сократилось и уже практически незаметно (по этому даже лучше писать на том-же Паскале или Си) Однако есть ряд процедур (некоторые фрагменты "брут-форсеров", "кодеков", архиваторов) требующих экономии каждого такта, и для них ASM пока ещё имеет свои плюсы... |
Автор: somewhere 27.9.2007, 08:34 | ||
Вот он глас народа, вот об этом и был разговор... |
Автор: morfus 30.9.2007, 03:44 |
Опять-же многое зависит от бюджета. Например (суммы шуточные) если планируется продать 10 экземпляров программы по $10 при том что программисту будет заплачено $50 а вам достанется что осталось, то вкладывать в неё $100 (для того чтоб нанять не одного Си программиста а одного Си и одного ASM) было бы не разумно, даже если с точки зрения быстродействия это могло бы помочь. |
Автор: Pragma 16.10.2007, 22:53 | ||||||
Черт, как же в точку то...а некоторые и вобще думают что кодить можно только на паскале) Мне лично 16 лет, изучая ассемблер на протяжении 2ух лет нашол крайне мало собутыльников единомышленников, в школе информатика выше МС Офиса не уходила вообще, есть лиш парочка знакомых студентов да и те учат асм для галочки в универе... Как же жаль что так мало людей знакомы с этим удивительным миром низкоуровневого программирования...
ЗЫ Ап темке) |
Автор: Lonley 17.10.2007, 08:09 |
ASSEMBLER -- он будет всегда... как это не пафосно звучит![]() ![]() |
Автор: morfus 17.10.2007, 16:00 |
Lonley, Вашу подпись да во все FAQ-и по программированию ![]() |
Автор: Lonley 18.10.2007, 07:39 |
morfus, запросто ![]() |
Автор: morfus 3.11.2007, 15:47 | ||
Кстати есть и такое мнение.
(с) http://joelonsoftware.com/items/2007/09/18.html |
Автор: JackYF 3.11.2007, 16:25 | ||
morfus, это словоблудие. да, но только во втором случае ощутимо быстрее, чем в первом.
опять надеемся на экстенсивное развитие? ну-ну. Тут многие уже понадеялись... И получили тучу тормозных программ. |
Автор: sgi1981 3.11.2007, 20:35 |
Сколько насчитывается разных архитектур процессоров, кроме процессоров персональных компьютеров ? |
Автор: JackYF 3.11.2007, 22:32 | ||
Итого - много ![]() |
Автор: morfus 4.11.2007, 22:20 |
Microsoft в 80-х понядеялась, и где она теперь ? (только у неё вся фишка была что они практически одни понадеялись, а теперь надеются минимум 99%) |
Автор: Neox_GeForce 15.11.2007, 23:55 | ||
Мне ассемблер очень нравится, на нём можна сделать то что на других языках очень сложно, и вообще он прост, но для не очень больших програм а то можна "заблудится" в коде. Ассемблер для вирусов ну и драйверов! ![]() Добавлено через 3 минуты и 42 секунды
ASSEMBLER Должен бить всегда! ![]() ![]() ![]() |
Автор: newinfo2008 5.1.2008, 00:07 |
Читать не стал, т.к. многа слишком, согласен полностью. Сам изучил в 9-ом классе ассемблер, архитектуру x86, когда программировал радовался как ребенок, причем именно на асме и ни на каком ином языке программирования я так не радовался |
Автор: SABROG 5.1.2008, 13:25 |
Асм первый язык программирования который я освоил. Он помог мне понять архитектуру процессора, понять как он работает, что такое программа для него. Узнать что существуют инструкции, которые могут его "повесить". Показал мне что одна задача может решаться несколькими способами, популярный пример умножения на 2. Ассемблер дал мне свободу творчества, свободу выбора, я сам себе оптимизатор по скорости и по размеру. Ассемблер научил меня понимать чужой код, влиять на ход событий другой программы. В итоге это привело к написанию нескольких кряков к программам и тренеров к играм. Писались они тоже на ассемблере, посему размер тех же тренеров был по 4кб, в отличае от существующих на сегодняшний день по 200-500кб. Не понятно что они в них пихают, когда задача программы поменять пару байт по нескольким адресам. А эта ужасная типизация ЯВУ, такое количество типов как С++ приводит в ужас, а собственные типы в виде классов с перегруженными операторами. Пока не изучишь весь класс - не поймешь что же дает перегруженный оператор, скажем сложения. Для этого пишут документации. В ассемблере есть только 2 типа данных - бит и байт. Остальное все производное от них. Изучая C++ я долго не мог понять почему он настолько сложнее ассемблера, до такой степени сложный, что я с ужасом представляю себе момент, когда мне придется изучать паттерны проектирования. Как бы там нибыло, я думаю, никто не будет спорить, что прежде чем написать любую программу - для нее заготавливается каркас. Прописываются инклюды, пишется int main () {} и т.д. В ассемблере тоже есть каркасы, поэтому для того кто пишет на нем активно не занимает большого времени внедрить ту или иную заготовку. Причем эти заготовки, как правило, уже оптимизированы по самое не хочу и компилятору уже не надо ничего самому оптимизировать, программа компилиться за считанные секунды или доли секунд. А внутри своих программ вы никогда не увидите спама в виде надписей "Borland C++ - Copyright 2002 Borland Corporation" или "Microsoft Visual C++ Runtime Library", вы можете контролировать каждый байт и это только ваша программа в которой не будет ничего лишнего, ничего того, что вы не используете. |
Автор: JackYF 5.1.2008, 13:39 |
SABROG, это всё хорошо и правильно. Пока программа маленьких размеров. Ты представляешь себе, сколько будет на ассемблере занимать обычная такая программа, которая на С++ имела размер в несколько тысяч строк? А насколько просто в ней будет разбираться? А когда проект пишет не один человек, а 10? а 100? |
Автор: SABROG 5.1.2008, 14:11 |
Для каждой задачи свой инструмент. Я не асматик, асм для меня не религия. Понятно, что можно воспользоваться одной единственной функцией WinApi, чтобы скачать файл, а можно написать клиента на сокетах, который реализует протокол http, а можно скачать готовый класс или библиотеку и т.д. Асм должен быть стартовой площадкой для понимания работы программ, а не средством, которое будет использоваться повсеместно. Лично для моих программ мощностей асма вполне хватало, порой доходило до того, что тупо использовались подряд одни вызовы winapi и ничего большего. Или из последних программ, это бот информер для сети DirectConnect. Причем на асме была реализована только работа с сокетами, типа подключение, отключение, слушание порта, принятие данных, отправка данных. А к самой программе я подключил дллку скриптового движка Lua, и на скрипте луа реализовал уже сам протокол соединения. Задача бота была простая - в заданном интервале повторять новость в главный чат. Программа весила 8кб, dllка Lua около 500кб. Такой же эксперимент проводил с парсингом XML'я, программа 4кб, дллки libxml2 - 2 мегабайта. Ну и с COM баловался, экспорт данных в Word, Excel из проги на асме. Т.е. я ни в коем случае не призываю все на нем писать, но действительно нет смысла стрелять из пушки по воробьям. Хоть я и понимаю, что мы настолько ленивые порой бываем, что нам хватает функциональности .bat или .js файлов. |
Автор: MAKCim 5.1.2008, 16:05 | ||
вот это уже глупость, имхо ассемблер должен использоваться в 2-ух случаях 1. оптимизация с использованием "недоступных" компилятору фишек типа SIMD 2. использование архитектурных особенностей конкретной машины использование в остальных случаях, имхо, фанатизм |
Автор: morfus 6.1.2008, 19:07 | ||
SABROG, полностью поддерживаю, до последней буквы... (только у меня это второй язык который я освоил, первый был тупо "барсик" причём оксфордский его диалект)
Т.е для того чтоб написать "Hello World" надо отказаться от уже известного АСМа и дополнительно начать изучать какой нибудь другой язык ? (ИМХО маразм) |
Автор: MAKCim 6.1.2008, 21:27 | ||||
а зачем это писать? ![]() для написания сложных программ ассемблер не лучшее решение по всем парамерам кроме скорости работы конечной программы (и то не всегда) я не имею в виду 2 вышеназванных пункта |
Автор: barin_Student 9.1.2008, 07:20 |
На ассемблере что полезное можно сделать?Какой приличный проект ![]() Ассемблер - это как порно журнал, ускоряет , но не впечатляет..Не впечатляет , ограничением того что написанный код проекта будет как албанский язык написанный китайцем.. Потом кто с этим проектом разберется? Неспорю есть те вещи где без асм. не обойтись(практически), но категорически заявлять , что без него никуда - это ,как его там.. пора завязывать журналы смотреть, и старую порно касету смотреть ...)) Когда есть красивые девушки..хоть с ними и медленей, порой дороже, порой они по 2 часа спамят, но живой проект ,который не байты в регистрах с места на место ложит , а еще что то делает намного приятней. ИМХО ![]() |
Автор: SABROG 9.1.2008, 09:51 |
Во всем надом смотреть в корень. SMPP - протокол работащий на основе TCP/IP или X.25, с этими протоколами работается без проблем на ассемблере. Все остальное зависит от твоих наработок, если ты много пишешь, то у тебя остается много кода и множество готовых решений. Исходники обычно комментируют, если не будешь этого делать, то с твоим кодом на C++ или Java тоже мало кто быстро разберется. Oracle начинали писать на ассемблере. Серьезные проекты - MenuetOS, RadAsm. Кстати тот же компилятор fasm не назвать серьезным проектом язык не поворачивается, да написан на ассемблере для ассемблера, но чем он не серьезен ? Кстати еще один факт почему на ЯВУ пишется легче - Open Source. Сейчас все у друг друга передирают, сначала решения передирали с unix'a. Теперь все просто пишут на C++ и другие передирают у них. На ассемблере такого не увидишь, т.к. людей желающих писать на ассемблере мало. Короче community у ЯВУ больше, и поддержка соотвественно больше. Вот только начинающие программисты того же Php или Java не понимают как работает их программа, не умеют работать с отладчиком, анализировать дампы, крэши. Скажу на своем примере. Я знаю ассемблер, но сейчас не пишу на нем серьезных или не серьезных программ. Какое-то время писал на Borland Builder C++. Сейчас переместился в сторону Qt. Я не зацикливаюсь на чем-то одном, я изучаю все что мне интересно, я также отдаю себе отчет в том, что в ассемблере для меня осталось очень много не познанного и не изученного. Если человек хочет углубляться и испытывать себя это его право, хочет всю жизнь посвятить ассемблеру - пожалуйста, он станет великим специалистом в своей области и узнает гораздо больше чем знает программист на Jave. Ведь не смотря на то что северный и южные полюса покорили уже не однократно, туда все еще идут и идут исследователи. Можно спросить их: "зачем ?", у каждого свой ответ на этот вопрос. Считать таких людей фанатами ? Они исследователи ! Кто-то изучает литературу в школе и этого ему достаточно, кто-то идет дальше и становится литератором. Знания формируют свое мировозрение, в каждой области есть что-то свое - ценное, чего нет в других областях. |
Автор: morfus 10.1.2008, 00:47 | ||
Тыщу раз уже писали, никто не говорит что выгоднее и быстрее писать всё на ASM но мелкие функции очень даже можно (и местами нужно) Что касается меня лично так я вообще не только за деньги пишу, но и для себя (хобби моё такое программирование называется) а в этом случае можно смело плевать на трудности, сроки, деньги, и прочую чепуху... |
Автор: sgi1981 22.1.2008, 01:05 |
Пример программы на асме. Реализация алгоритма перекодировки видео или аудио информации из одного формата в другой формат (кодек). Требуется по возможности максимальное быстродействие. Решений задачи тут бесчисленно. |