roboforum.ru

Технический форум по робототехнике.

 

C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение repository » 08 окт 2009, 22:50

Си появился же не просто так. как и Java, Бейсик, ПХП.
Качество языка - это какой объем проекта он позволяет поддерживать без головной боли.
Си тут лучше, чем асм, а С++ лучше чем С.
А когда только для своего удовольствия - то разве может быть лучше, чем то, что мне нравится?
Как говорил один мой знакомый военный фотограф - лучше тот способ, которым пользуешься.
repository
 
Сообщения: 260
Зарегистрирован: 29 окт 2008, 18:14
Откуда: Химки МО
прог. языки: Java

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение blindman » 09 окт 2009, 05:13

Daniloff писал(а):Но с другой иной раз один некошерный goto - и двух десятков невразумительных строк как не бывало :D

А setjmp/longjmp тогда - ересь несусветная ? :ROFL:

Или святой грааль? :D
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение Daniloff » 09 окт 2009, 09:43

ну, где-то так! :wink:
Код: Выделить всёРазвернуть
Try to avoid goto, setjmp, longjmp. 


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

Если же человек делает вещицу для себя, в единственном, так сказать, экземпляре, под конкретное железо и никуда не торопясь, из спортивного интереса решающий задачку нехватки десятка байт или пары мегагерц, то asm is the best chioce :good:
Плюс - даже в таком случае фрагменты, библиотеки и процедуры можно без труда использовать в других проектах, на других микроконтроллерах той же фирмы.
Daniloff
 
Сообщения: 64
Зарегистрирован: 06 окт 2009, 11:09
Откуда: Ярославль
прог. языки: asm86,avrasm

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение blindman » 09 окт 2009, 09:49

Только если задачка именно так и стоит - сыкономить любой ценой десяток байт. Для любителей - проблема ИМХО надуманная. А вот в промышленных условиях как раз имеет смысл экономия в десятки центов на чипе, может оправдать затраты на написание максимально компактной программы.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение galex1981 » 09 окт 2009, 09:50

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

Если же человек делает вещицу для себя, в единственном, так сказать, экземпляре, под конкретное железо и никуда не торопясь, из спортивного интереса решающий задачку нехватки десятка байт или пары мегагерц, то asm is the best chioce

Точно! :good:
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение =DeaD= » 09 окт 2009, 10:06

ИМХО асм нужен в 3 случаях:
1. Асмовые вставки для оптимизации скорости работы;
2. Небольшие по коду и массовые устройства (для экономии объема памяти => более дешевые контроллеры => при огромных тиражах существенный экономический эффект от выбора более дешевого контроллера, покрывающий расходы на большее время разработки).
3. Чтобы научиться асму и потом спокойно применять его в случаях 1 и 2 :) (сюда же относим и спортивный интерес).
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение Snable » 09 окт 2009, 21:21

Есть такой чел... Макконелл... Он в своей книжке "Совершенный код" написал, что за всю жизнь ему пришлось жестко оптимизировать всего 1 прогу. Он писал быстрый декодер для DES по-моему, но не суть. Суть вот в чем... (Цифры не точные, поскольку читал давно)

Он писал на Java сначала.... Прога работала около 30 минут.
Он нашел узкие места, оптимизирал их на Java и она стала работать 10 минут.
Развернул циклы и она стала работать 5 минут. Но его это не устраивало.
Он переписал на Си. Прога работала 4 минуты.
Опять поискал узкие места и оптимизировал, полностью развернул пару циклов и прога стала работать 1 минуту. Его это тоже не устраивало.
Он переписал пару строк(из многих тысяч) в узких местах на асме и прога стала работать 15 секунд. Ему надо было уложиться в 30 секунд. Но прогу стало невозможно читать!

Так вот, о чем я.
Если надо, чтобы прога работала быстро, то надо определиться, насколько быстро она должна работать и оптимизировать до того уровня, который нужен.
А на асме тут народ, наверное, пишет, потому что там "оптимизация по умолчанию". Я считаю, что умнее компилятора большой кусок кода никто не напишет из здесь присутствующих, а вот времени на это затратит до фига.
В соответствии с принципом Парето - 80% времени программа выполняет 20% строк. Реально же зависимоть несколько иная - 90% времени программа выполняет <1% кода.
Лучшее решение в сложных проектах - писать на Си 99% кода и 1% на асме, чем писать все на асме, чтобы никто не понял (и не помог, если потребуется)

Каким боком сюда вписывается Бэйсик? Это как Джава в примере выше. Программы на нем более понятны, поскольку они более формализованы.
Это не асемблер, где можно "битик туда-сюда-в_то_место-забыли-а_теперь_вот_тут а параллельно еще 30 таких же цепочек"...
И не Си, где можно написать одно и то же 50 способами...
Это четкий язык без синтаксического сахара и без четкого контроля за всем, что происходит внутри устройства, на котором исполняется код.
Именно поэтому он лучше для начинающих.
Аватара пользователя
Snable
 
Сообщения: 395
Зарегистрирован: 21 мар 2009, 20:06
Откуда: Город на Неве
прог. языки: GNU C++ with Qt / C# via .NET
ФИО: Александр

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение avr123.nm.ru » 09 окт 2009, 21:30

Рекомендую начинающим начинать программировать на Си для микроконтроллеров. Т.е. не изучать язык Си, а учится программировать микроконтроллер на Си.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение =DeaD= » 09 окт 2009, 21:38

Snable писал(а):Я считаю, что умнее компилятора большой кусок кода никто не напишет из здесь присутствующих, а вот времени на это затратит до фига.

Да фиг с ним умнее - главное сколько ошибок понаделают и сколько времени эти ошибки потом искать...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение Daniloff » 09 окт 2009, 21:49

Кто нибудь знает как на си писать под pic16f84a? :wink:
Daniloff
 
Сообщения: 64
Зарегистрирован: 06 окт 2009, 11:09
Откуда: Ярославль
прог. языки: asm86,avrasm

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение =DeaD= » 09 окт 2009, 21:52

А в чем проблема? Под него нету компилятора Си? Или вы не смогли найти примеры в инете?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение contr » 09 окт 2009, 22:04

Кто нибудь знает как на си писать под pic16f84a?

качаем HiTech, скажем такой HCPICP-pro-9.60PL6.4070.exe, кажем его в MPLab и работаем. Правда с этим МК проще общаться на asm.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение avr123.nm.ru » 09 окт 2009, 22:17

Daniloff писал(а):Кто нибудь знает как на си писать под pic16f84a ? :wink:

Так же как и для любого PIC. Вот конкретно шаг за шагом первый проект - попробуйте по аналогии - http://mcc18.narod.ru
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение contr » 10 окт 2009, 18:53

Так же как и для любого PIC. Вот конкретно шаг за шагом первый проект - попробуйте по аналогии - http://mcc18.narod.ru

Си понимают многие компиляторы, так что использовать можем для любого МК, в т.ч. и РС. А ссылка крайне неудачная. PIC18ххх много сложнее, а компилятор С18 заточен именно под это семейство. Каждый компилятор имеет свои особенности. С18 достаточно сложен и не имеет русского хелпа. Для начинающего это не лучший выбор.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

Re: C vs ASM -прочитай и никогда не поднимай эту тему на форуме!

Сообщение avr123.nm.ru » 10 окт 2009, 21:25

Вы ВНИМАТЕЛЬНО почитайте что написано перед ссылкой.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Yahoo [Bot] и гости: 5

Mail.ru counter