![]() |
|
![]() ![]() ![]() |
|
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: нет Всего: 91 |
Асм первый язык программирования который я освоил. Он помог мне понять архитектуру процессора, понять как он работает, что такое программа для него. Узнать что существуют инструкции, которые могут его "повесить". Показал мне что одна задача может решаться несколькими способами, популярный пример умножения на 2. Ассемблер дал мне свободу творчества, свободу выбора, я сам себе оптимизатор по скорости и по размеру. Ассемблер научил меня понимать чужой код, влиять на ход событий другой программы. В итоге это привело к написанию нескольких кряков к программам и тренеров к играм. Писались они тоже на ассемблере, посему размер тех же тренеров был по 4кб, в отличае от существующих на сегодняшний день по 200-500кб. Не понятно что они в них пихают, когда задача программы поменять пару байт по нескольким адресам.
А эта ужасная типизация ЯВУ, такое количество типов как С++ приводит в ужас, а собственные типы в виде классов с перегруженными операторами. Пока не изучишь весь класс - не поймешь что же дает перегруженный оператор, скажем сложения. Для этого пишут документации. В ассемблере есть только 2 типа данных - бит и байт. Остальное все производное от них. Изучая C++ я долго не мог понять почему он настолько сложнее ассемблера, до такой степени сложный, что я с ужасом представляю себе момент, когда мне придется изучать паттерны проектирования. Как бы там нибыло, я думаю, никто не будет спорить, что прежде чем написать любую программу - для нее заготавливается каркас. Прописываются инклюды, пишется int main () {} и т.д. В ассемблере тоже есть каркасы, поэтому для того кто пишет на нем активно не занимает большого времени внедрить ту или иную заготовку. Причем эти заготовки, как правило, уже оптимизированы по самое не хочу и компилятору уже не надо ничего самому оптимизировать, программа компилиться за считанные секунды или доли секунд. А внутри своих программ вы никогда не увидите спама в виде надписей "Borland C++ - Copyright 2002 Borland Corporation" или "Microsoft Visual C++ Runtime Library", вы можете контролировать каждый байт и это только ваша программа в которой не будет ничего лишнего, ничего того, что вы не используете. |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 1 Всего: 162 |
SABROG, это всё хорошо и правильно. Пока программа маленьких размеров. Ты представляешь себе, сколько будет на ассемблере занимать обычная такая программа, которая на С++ имела размер в несколько тысяч строк? А насколько просто в ней будет разбираться? А когда проект пишет не один человек, а 10? а 100?
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: нет Всего: 91 |
Для каждой задачи свой инструмент. Я не асматик, асм для меня не религия.
Понятно, что можно воспользоваться одной единственной функцией WinApi, чтобы скачать файл, а можно написать клиента на сокетах, который реализует протокол http, а можно скачать готовый класс или библиотеку и т.д. Асм должен быть стартовой площадкой для понимания работы программ, а не средством, которое будет использоваться повсеместно. Лично для моих программ мощностей асма вполне хватало, порой доходило до того, что тупо использовались подряд одни вызовы winapi и ничего большего. Или из последних программ, это бот информер для сети DirectConnect. Причем на асме была реализована только работа с сокетами, типа подключение, отключение, слушание порта, принятие данных, отправка данных. А к самой программе я подключил дллку скриптового движка Lua, и на скрипте луа реализовал уже сам протокол соединения. Задача бота была простая - в заданном интервале повторять новость в главный чат. Программа весила 8кб, dllка Lua около 500кб. Такой же эксперимент проводил с парсингом XML'я, программа 4кб, дллки libxml2 - 2 мегабайта. Ну и с COM баловался, экспорт данных в Word, Excel из проги на асме. Т.е. я ни в коем случае не призываю все на нем писать, но действительно нет смысла стрелять из пушки по воробьям. Хоть я и понимаю, что мы настолько ленивые порой бываем, что нам хватает функциональности .bat или .js файлов. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
вот это уже глупость, имхо ассемблер должен использоваться в 2-ух случаях 1. оптимизация с использованием "недоступных" компилятору фишек типа SIMD 2. использование архитектурных особенностей конкретной машины использование в остальных случаях, имхо, фанатизм -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
morfus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 30.6.2007 Репутация: нет Всего: 2 |
SABROG, полностью поддерживаю, до последней буквы... (только у меня это второй язык который я освоил, первый был тупо "барсик" причём оксфордский его диалект)
Т.е для того чтоб написать "Hello World" надо отказаться от уже известного АСМа и дополнительно начать изучать какой нибудь другой язык ? (ИМХО маразм) Это сообщение отредактировал(а) morfus - 6.1.2008, 19:11 |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
а зачем это писать? ![]() для написания сложных программ ассемблер не лучшее решение по всем парамерам кроме скорости работы конечной программы (и то не всегда) я не имею в виду 2 вышеназванных пункта Это сообщение отредактировал(а) MAKCim - 6.1.2008, 21:28 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
barin_Student |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 488 Регистрация: 10.8.2007 Где: Казахстан , Алмат ы Репутация: нет Всего: 2 |
На ассемблере что полезное можно сделать?Какой приличный проект
![]() Ассемблер - это как порно журнал, ускоряет , но не впечатляет..Не впечатляет , ограничением того что написанный код проекта будет как албанский язык написанный китайцем.. Потом кто с этим проектом разберется? Неспорю есть те вещи где без асм. не обойтись(практически), но категорически заявлять , что без него никуда - это ,как его там.. пора завязывать журналы смотреть, и старую порно касету смотреть ...)) Когда есть красивые девушки..хоть с ними и медленей, порой дороже, порой они по 2 часа спамят, но живой проект ,который не байты в регистрах с места на место ложит , а еще что то делает намного приятней. ИМХО ![]() -------------------- Нехорошо блин!!! |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: нет Всего: 91 |
Во всем надом смотреть в корень. 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 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 30.6.2007 Репутация: нет Всего: 2 |
Тыщу раз уже писали, никто не говорит что выгоднее и быстрее писать всё на ASM но мелкие функции очень даже можно (и местами нужно) Что касается меня лично так я вообще не только за деньги пишу, но и для себя (хобби моё такое программирование называется) а в этом случае можно смело плевать на трудности, сроки, деньги, и прочую чепуху... |
|||
|
||||
sgi1981 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: 7 Всего: 10 |
Пример программы на асме.
Реализация алгоритма перекодировки видео или аудио информации из одного формата в другой формат (кодек). Требуется по возможности максимальное быстродействие. Решений задачи тут бесчисленно. -------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |