Все игры
Запись

Вопрос на совесть. Что использовать Асемблер или всетаки С.

хочется:На море

Нравится

Вы не можете комментировать, т.к. не авторизованы.


Михаил Горюнов      14-07-2006 23:02 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
Не совсем согласен!
Все зависит от поставленной задачи, и как эта задача ляжет на то ядро, которое есть у Вас в наличии. Ни для кого не секрет, что написание и читаемость программы на си гораздо менее трудоемка, чем на ассемблере. Я к примеру легко могу писать как на ассемблере, так и на си, но на ассемблере трудоемкость очень высокая, поэтому если нет особой необходимости получить максимальную производительность или экономию памяти - пишу на си! Как правило, отладка программ на си происходит гораздо менее болезнено чем на ассемблере.
Вот на данный момент например я пишу на си под ядро 8051. Когда я захотел проанализировать, насколько компилятор эффективно компилирует програму в машинные коды - я был поражен... Редкая строка на си заменялась тремя командами на ассемблере, в основном это две три команды. Еще один повод задуматся. Если знаешь и учитываешь архитекутру того, что программируешь - программа на си ничем не будет отличатся от программы на ассемблере. Особенно, если учесть некоторые тонкости компиляции выражений одного алгоритма в разных исполнениях языка высокого уровня.
А если вы вдруг захотели запихнуть в свой микроконтроллер подсчет логарифма для каких то целей... Тут вообще не вижу смысла использовать ассемблер - это уже давно написано, причем разными методами - табличными, вычислительными ... просто поставьте соответствующий ключ компилятору, и готовый кусок кода будет частью вашей программы. Зачем работодателю платить вам деньги за то, что уже давно написано и лежит как правило у вас под носом? Чтобы обучить? Смысл знать все - объясните мне... как известно, знания бесконечны, и пытаться объять необъятное - утопия. Вам лишь достаточно знать, что все написано оптимальным методом, и все...

Это мое мнение.
Я не защищаю си, так как сам очень долгое время писал на ассемблере - начинал с него. Его знание и умение программировать на нем безусловно является приорететным для любого системного программиста. Но когда ты уже знаешь, как оно будет и должно работать - использование ассемблера уходит на второй план... в очень редких случаях приходится его использовать

Иван Фещенко      15-07-2006 08:34 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
Я хочу сказать (на примере последней маей работы коорую ща делаю). Это подружить термометр DS10S20 с контроллером. Я присал часть кода на асме и с помощью JTAGa проверял как ведет себя переферия (пока не начнет отликаться и чета посылать). Тем самым я по составленному и отлаженному алгоритму УДОСТОВЕРИЛСЯ что сие чудо роботает. И что уже проверенный алгоритм действий можна переводить на Си. Т.К. еслибы писал на сях сразу то я бы небыл бы уверен в правильности работы написанного кода.
     29-07-2006 15:40 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
Если есть желание (и время) дотошно разобраться в принципах работы устройства- тогда милости просим изучать и писать на асме. В случае промышленного программирования- только С.
Наброски-проверки как раз лучше тоже делать на С. А вот для оптимизации применение асмовских вставок- имхо идеальный вариант.
Я тоже когдато бегал и махал флагом а-ля "асм- рулез! на сях пишут ленивые" и т.д. Но после того как мне пришлось сначала дорабатывать чужой проект на асме, а потом еще и разрабатывать парочку своих, я медленно, но верно пришел к мысли "С и только С". Ну со вставками, если проц дохлый (8051 например). Тем более, появляется возможность кроссплатформенности- я написал парочку связанных библиотек, работа которых проверена на трех процессорах. Сколько времени я бы писал три разных версии на асме? ;)
Алексей Кислов      16-04-2007 20:07 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
На асме имеет смысл если важна синхронизация операций или ресурсы камня небогаты и используются под завязку. Все прочие случаи однозначно Си - хотя бы из-за простоты работы с функциями.
Комментарий удален
Дмитрий Агапов      03-10-2007 12:22 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
Когда то писал софт для не стандартной платформы на камне ARM7500FE ... так под него стандартные сишные библиотеки просто не работали, наши электронщики что то с плисом перемудрили.
Вообщем первый проект писал полностью на ассемблере, следующий уже делал смешанным - реализация процедур на ассемблере и упаковка их в методы C++ классов. Потом основные части проекта писались на C++, а ассемблер работал "за занавесом".
Александр E.      24-10-2007 10:14 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
Для разных целей иногда стоит использовать разные языки. То, что требует быстрой обработки на слабом процессоре лучше описывать на Асемблере, но если процессор достаточно быстрый можно использовать и Си. В Си описания всё же короче и нагляднее. И иногда требуется перенос с одного процессора на другой, на Си это быстрее.
Хотя сам чаще использую Асемблер, уж очень шустрые вещи люблю делать.
Асемблер хорошо используют схемотехники. Им это проще.
Программисты и иные чаще быстрее осваивают Си.
     14-11-2007 12:43 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
1. Какой контроллер?
2. Какая задача на него возложена?

когда ответишь на эти два вопроса (сам для себя), тогда и определишься на чем ваять. Если тебе не нужно повышенное быстродействие и не ограничена память- Си. Если тебе надо извернуться и воткнуть собственную ОС на 8051 с 2К (это для например) - то ассемблер.
Александр Вехов      07-12-2007 19:43 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
Мое мнение такое:
сначала научиться работать в ASM, а потом переходить на C.
Все равно понадобятся знания и того, и того.
     24-12-2007 11:34 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
Есть время и желание разобраться как следует пиши на АСМ. Жалко времени, усилий и необходим очень быстрый результат пиши на Си с библиотеками. Есть время и желание творить самому и для себя пиши на Си со вставками ассемблера, создавай собственную библиотеку.
Чазов Дмитрий      06-02-2008 12:27 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
Это правильно. Надо знать и то и другое, но писать лучше на С (как называется - ближе к людям). Я раньше писал чисто на асме, то скажу - ворох бумаги!!! на 15-20 странице программы начинаешь забывать, что у тебя за переменные, что делают подпрограммы. Метаешься по листингу в поисках воспоминаний. А щас - лафа. модель вообще конструктором создаешь, даже таймерные переменные он пересчитывает от частоты проца. мощные библиотеки и понятные для написания программы. Особое значение - переменные, доступные человеческому восприятию. Большой + навигации в оболочке компилятора. А недостатки - можно всегда исправить ассемблерным вложением (обычно там, где критично по премени.
Николай Макухин      11-03-2008 11:34 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
Программирую не контроллеры, а сигнальные процессоры, но думаю, что в плане выбора языка подход примерно одинаковый... Сначала пишется весь код на си (без библиотек, все свое), затем в коде ищутся "узкие места" (например, тело обработчика прерывания) и переписываются на Асме - получается вполне читабельный и производительный код... Согласно известному правилу, 80% вычислений сидят в 20% кода - так что можно смело переписывать эти 20% на Асме, а остальные 80% трогать смысла нет - все равно производительность повысится не сильно, а вот понятность и простота кода сильно пострадают... Главное, чтобы компилятор хороший был, а то известны случаи, когда при определенных условиях компилятор "не замечает" некоторые инструкции - поди найти потом, в чем глюк
     23-07-2008 23:03 (ссылка)
Re: Вопрос на совесть. Что использовать Асемблер или всетаки С.
По моему ответ один - и то и другое. В зависимости от задачи.
Комментарий удален