Си или Ассемблер

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
BGert
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вс ноя 25, 2012 13:57:12

Си или Ассемблер

Сообщение BGert »

Помогите разобраться !!!
Я собираюсь изучать программирование МК AVR. И столкнулся с такой проблемой, как выбор языка программирования Си или Ассемблер. Так как я пока что не изучал программирование. Мне нужна помощь что лучше будет мне изучать первым. А что вторым я уже и сам догадаюсь )))
Заранее спасибо за ценные советы !
Реклама
Аватара пользователя
blackx
Говорящий с текстолитом
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Re: Си или Ассемблер

Сообщение blackx »

Советую начать с ассемблера. Поищите в поиске, эта тема уже не раз поднималась.
Изображение only pure true norwegian blackx Изображение
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Си или Ассемблер

Сообщение pyzhman »

Ассемблер.
Docendo discimus
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Си или Ассемблер

Сообщение YS »

Начните с ассемблера под контроллер и Си для ПК (консольные приложения, структура программы, базовые алгоритмы). А потом совместите полученные знания. :)

Наилучший результат дает совмещение знаний железа, подкрепленных ассемблером, и навыков алгоритмизации, подкрепленных практикой на ПК.

ВАЖНО: если собираетесь писать под МК, поначалу не замусоривайте голову ООП и функциональщиной. Ваш главный выбор - структурное императивное программирование.

На всякий случай - С и С++ - разные языки. Помните об этом. Ваш выбор - ANSI C.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Барсик
Друг Кота
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Re: Си или Ассемблер

Сообщение Барсик »

BGert писал(а):что лучше будет мне изучать первым.
Изучайте C. Сгодится и для микроконтроллеров и для компьютерных приложений.
Компилятор языка высокого уровня сделает за Вас "черновую" работу по организации структуры программы и начальных настроек, вроде инициализации указателя стека и прочих прелестей, в которых новички делают массу ошибок. Не надо будет ломать голову, какие регистры общего назначения использовать, когда пихать их в стек, и когда оттуда вытаскивать.
А вдруг понадобится, не дай Бог, разделить одно число на другое? В си просто напишете a=b/c; А в ассемблнре будете где-то искать соответствующую библиотеку, и разбираться, в какие регистры заносить исходные значения, и откуда взять результат... Оно Вам надо? За деревьями не будет видно леса... А не дай Бог, перейдёте на другие микроконтроллеры - придётся учить другой ассемблер...
Лично я не знаю ассемблера для микроконтроллеров AVR. Но это мне нисколько не мешает писать для них свои кривенькие программки на C в среде разработки CodeVisionAVR.
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Си или Ассемблер

Сообщение ploop »

Мне нужна помощь что лучше будет мне изучать первым.
Советую начать с ассемблера. Собственно, там и учить ничего не надо, просто поймёте, как работает контроллер.
Реклама
Аватара пользователя
Кефир
Встал на лапы
Сообщения: 131
Зарегистрирован: Пт апр 01, 2011 20:59:47
Откуда: Саратов
Контактная информация:

Re: Си или Ассемблер

Сообщение Кефир »

BGert писал(а):Помогите разобраться !!!
Я собираюсь изучать программирование МК AVR. И столкнулся с такой проблемой, как выбор языка программирования Си или Ассемблер. Так как я пока что не изучал программирование. Мне нужна помощь что лучше будет мне изучать первым. А что вторым я уже и сам догадаюсь )))
Заранее спасибо за ценные советы !
Советую, будет лучше всего - Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера

И конечно же - Справка по Ассемблеру для Atmel AVR
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Си или Ассемблер

Сообщение YS »

Но это мне нисколько не мешает писать для них свои кривенькие программки на C в среде разработки CodeVisionAVR.
Кривенькие программы незнание ассемблера писать и правда не мешает. :) Но мы же говорим о нормальных, оптимальных и красивых (что, вообще говоря, не всегда одно и то же), программах?
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Си или Ассемблер

Сообщение ploop »

А вдруг понадобится, не дай Бог, разделить одно число на другое? В си просто напишете a=b/c; А в ассемблнре будете где-то искать соответствующую библиотеку, и разбираться, в какие регистры заносить исходные значения, и откуда взять результат...
... и потом чесать репу, почему на этом месте программа затыкается на несколько миллисекунд. А вот если бы автор попробовал ранее ассемблер, то сразу сообразил бы сделать пару сдвигов (или другие хитрости применил) уже на Си. Да что говорить, обычное понятие "указатель" практически ни до кого не доходит с первого раза (а до некоторых вообще никогда).

И да, мы не советуем именно писать на ассемблере, мы советуем просто знать, как работает МК. Очень много граблей потом можно обойти.
Аватара пользователя
Барсик
Друг Кота
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Re: Си или Ассемблер

Сообщение Барсик »

ploop писал(а):почему на этом месте программа затыкается на несколько миллисекунд.
Да и чёрт с ней. Если критические куски Вы делаете через прерывания, то никакого затыка не будет. Да пусть в фоновой задаче крутится хоть программа по расчёту сигналов от внеземных цивилизаций.
ploop писал(а):мы советуем просто знать, как работает МК
Знание, как работает МК, получается путём чтения даташита, и с ассемблером никак не связано. Лично мне наплевать слюной на все регистры общего назначения, сдвиги, и тому подобное. Зато из даташита я знаю, как инициализировать специальные регистры, которые отвечают за переферию. И их инициализация делается на си ничуть не сложнее, чем на ассемблере. А даже более наглядно.
YS писал(а):Кривенькие программы незнание ассемблера писать и правда не мешает.
Я так и знал, что кто-то купится на слово "кривенькие". "Кривенькие" не значит, что не работающие должным образом. Это просто значит, что они, возможно, составлены не самым оптимальным образом. Да и Чёрт с ними. Лишь бы работали правильно. И они работают правильно!

Оффтоп: Вдруг вспомнил этапы своей сложной биографии. Оказывается, я работал профессиональным эмбеддером ещё в 1986 году. Тогда и слова такого то не было. Зато был "макро" контроллер на основе микропроцессора I8080 под названием "Электроника К1-20". Жуткое уёбище без всяких средств разработки. Но к счастью, где-то украли кросс-ассемблер для операционной системы RT-11. Пишешь кусок программы, прошиваешь в УФ ПЗУ. Вставляешь в контроллер... Не работает! Ищешь ошибку. Прошиваешь снова. Гора микросхем типа К573РФ2 растёт на столе угрожающими темпами. Когда чистые микросхемы кончаются, идёшь стирать ультрафиолетом эту кучу... Господи, как мне не хватало среды разработки программ на языке высокого уровня! :cry:
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: Си или Ассемблер

Сообщение kalobyte »

годный наброс :)))
тематические ответы только в форуме, в приват не пишите
Аватара пользователя
Goodefine
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

Re: Си или Ассемблер

Сообщение Goodefine »

Не начинайте с ассемблера, люди ))) Сломаете себе мышление и будете потом на любом языке писать как на ассемблере. Вот наоборот можно, если захотите конечно ))) Ассемблер давным давно убит прогрессом, нравится это кому то или нет, но это факт.
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Си или Ассемблер

Сообщение ploop »

Сломаете себе мышление и будете потом на любом языке писать как на ассемблере.
Так и я начинал на ассемблере (правда на Z80), но вроде ничего себе не сломал. С успехом применяю ООП, любые скриптовые языки раскурить тоже сложности не представляет, свободно работаю с БД. Только вот даже запросы можно построить логичнее, имея всесторонний опыт.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25266
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Си или Ассемблер

Сообщение КРАМ »

Барсик писал(а):Господи, как мне не хватало среды разработки программ на языке высокого уровня! :cry:
Бред... :facepalm:
Причем тут ЯВУ?
Если не было средств отладки и ВООБЩЕ НИКАКОГО КОМПИЛЯТОРА, то это и вызывало трудности.
Напомню, что сам по себе Ассемблер - ЭТО ТОЖЕ ЯЗЫК. И он требует программу-транслятор...
Проблемы, которые возникают с Си при незнакомом компиляторе (у разных производителей разные реализации Си, есличо) могут В НАЧАЛЕ ИСПОЛЬЗОВАНИЯ нивелировать все преимущества от использования этого языка по сравнению с АСМом. И смена платформ так же требует некоторых потерь времени на адаптацию...
Убогие программки типа "плюс-минус-умножить-разделить" с такой же убогой временной диаграммой устройства с МК можно писАть вообще на чем угодно, хоть на "бейсиках". А если устройство работает в РРВ, да еще и с использованием тех ресурсов МК, которые не поддержаны Си (из-за непереносимости кода и иных причин...), то даже при написании кода на Си использование вставок на АСМе неизбежно. И порой времени на такой "гибридный" код уходит много больше, чем на исходное кодирование в АСМе.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Си или Ассемблер

Сообщение pyzhman »

Как и следовало ожидать тема сползла. :))
Docendo discimus
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Си или Ассемблер

Сообщение ploop »

Чему там сползать, тут даже по названию понятно.
Первые три поста по делу, далее сотню страниц холивара :)
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Си или Ассемблер

Сообщение Jack_A »

Предыдущие ( в разных форумах ) сотни раз возникавшие религиозные войны И.Х. vs пророк Мухамед ( то бишь C vs ASM ) обычно кончались тем же. Почти никому еще не удавалось убедить кого-нить сменить веру, разве что дикарей -- стекляными бусами и огненной водой .
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Си или Ассемблер

Сообщение Vov123 »

Чукчей-писателей всегда больше чукчей-читателей.
Аватара пользователя
Кефир
Встал на лапы
Сообщения: 131
Зарегистрирован: Пт апр 01, 2011 20:59:47
Откуда: Саратов
Контактная информация:

Re: Си или Ассемблер

Сообщение Кефир »

Goodefine писал(а):Ассемблер давным давно убит прогрессом, нравится это кому то или нет, но это факт.
Много не мало, опыт личный каждого из вас.
Последний раз редактировалось Кефир Вт фев 05, 2013 17:17:49, всего редактировалось 2 раза.
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Си или Ассемблер

Сообщение HHIMERA »

Эта чё за бред!!!??? :))) :)))
Думайте... прежде чем написать!!! :)))
"Я не даю готовых решений, я заставляю думать!"(С)
Закрыто

Вернуться в «Разные вопросы по МК»