roboforum.ru

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

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

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

=DeaD= » 05 апр 2009, 21:32

обсуждение вырезано из совершенно другой ветки и оставлено в назидание потомкам

Вообще твой случай - замечательная иллюстрация к тому, что надо юзать языки высокого уровня позволяющие качественно структурировать программу (Си++, Джава) и т.п. А нехватка таймеров и прерываний в них - иллюстрация к необходимости RTOS как минимум в виде очереди задач с диспетчером :)

Re: Синхронизация ног веслоходового шестинога

Vovan » 05 апр 2009, 21:43

Ну что тут скажешь... всё верно конечно...
В своё оправдание могу только промямлить: ну это же просто хобби, любительская конструкция... :sorry:
Да конечно, я всё понимаю и про языки (и не только понимаю, но и вижу их необходимость!) и про проф. подход к делу...
авр123 постоянно об этом говорит и правильно!
Постараюсь исправиться, вот тока в моём мозгу выстроится идея - сразу и начну новую жизнь :) а то что много времени на асм потратил, думаю "нет худа без добра"... :wink:

Re: Синхронизация ног веслоходового шестинога

yak-40 » 05 апр 2009, 22:03

Vovan писал(а):Постараюсь исправиться, вот тока в моём мозгу выстроится идея - сразу и начну новую жизнь а то что много времени на асм потратил, думаю "нет худа без добра"...

А я всегда считал что челу пишущему на ассемблере - респект и уважуха! :good:
И что на ассемблере можно написать лучше и компактнее. :)

Re: Синхронизация ног веслоходового шестинога

avr123.nm.ru » 05 апр 2009, 22:44

Vovan писал(а):а то что много времени на асм потратил, думаю "нет худа без добра"... :wink:

ИМХО только польза, я ж не говорю что АСМ вреден, наоборот он необходим даже для профи.
Я то про любителей всегда толкую - им ИМХО проще и БЫСТРЕЙ свои идеи осуществить на Си.

Добавлено спустя 2 минуты 15 секунд:
yak-40 писал(а):на ассемблере можно написать лучше и компактнее. :)

Конечно можно когда понимаешь процессор так же как группа разработчиков IAR или лучше.

Только кому нужно это лучше то ? Лучшее - враг хорошего.
Я думаю любителю достаточно сделать для себя хорошую вещицу, лучшая ему врядли требуется.

Добавлено спустя 3 минуты 23 секунды:
yak-40 писал(а):челу пишущему на ассемблере - респект и уважуха! :good:


Ага :lol: :lol: :lol: Вот чел отпахал 10 лет на АСМ-е теперь на триклятый Си ПЕРЕПОЛЗАЕТ

http://kazus.ru/forum/topic_14882-10.html

А тут я еще со своим не доходчивым объяснением пониМАШ !

:cry: :cry: :cry: :cry:

Re: Синхронизация ног веслоходового шестинога

executer » 05 апр 2009, 22:52

:shock:
Вот это список! Я в шоке, Vovan`у памятник при жизни! :good: *10Е6
Асм хорош для одной-двух скоростных задач, а дальше что? Дальше вы начнете распределять память, унифицировать куски кода, делать какието последовательности для повышения наглядности программы и так далее.... Если задуматся, то тоже самое делает и компилятор языка высокого уровня, ну так лучше ему и оставить эту задачу (пускай он ее решит по-своему, заняв немного больше места) а себя занять совершенствованием интеллекта робота. Я до определенного времени тоже не понимал зачем Си - просто мне было интеренсо написать максимально оптимальный и быстрый код (и радоватся скока много места осталось свободного :crazy: ). Зато владея асмом и Си можно сделать все!!
ПС: вот бы еще научится отлаживать асмовые функции под си :oops: (в микроконтроллерах для начинающих вопрос)

Re: Синхронизация ног веслоходового шестинога

Duhas » 06 апр 2009, 05:30

=DeaD= писал(а):Вообще твой случай - замечательная иллюстрация к тому, что надо юзать языки высокого уровня ...

тьфу...
executer писал(а)::shock:
Если задуматся, то тоже самое делает и компилятор языка высокого уровня, ну так лучше ему и оставить эту задачу (пускай он ее решит по-своему, заняв немного больше места) а себя занять совершенствованием интеллекта робота.

угу.. только при записи 0-й в два переменных типа char иль как там на сях под мк правильней, если эти переменные лягут в младшие 16 регистров, то компилятор сделает вот так:
ldi tmp, 0
mov r1, tmp
ldi tmp, 0
mov r2, tmp
вместо...
ldi tmp, 0
mov r1, tmp
mov r2, tmp

Vovan, давай код, посмотрим.. впишем куда нада )

Re: C vs ASM - очередной виток

blindman » 06 апр 2009, 06:19

Duhas писал(а):угу.. только при записи 0-й в два переменных типа char иль как там на сях под мк правильней, если эти переменные лягут в младшие 16 регистров, то компилятор сделает вот так:
На помойку такой компилятор. Нормальный компилятор C, как и более-менее опытный программист на ассемблере, сделает несколько eor Rx, Rx. А если ненулевое значение, LDI будет только один раз. Duhas, может сначала разобраться в вопросе, а потом уже рассуждать на тему C vs Assembler? Навязчивая идея какая-то ...

Re: C vs ASM - очередной виток

Сергей » 06 апр 2009, 08:14

Давайте сразу обсуждать на примере отличного компилятора IAR

Re: C vs ASM - очередной виток

Duhas » 06 апр 2009, 08:26

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

blindman может тот компилятор и лажа, я не помню откуда у мну этот пример висит в памяти...

Re: C vs ASM - очередной виток

Виталий » 06 апр 2009, 09:35

давайте поставим задачу.. простую довольно без сложных вычислений...

Давайте наоборот. Поставим задачу посложнее, так чтобы кода побольше, со сложными вычислениями.
А потом замеряем время рассчитанное по формуле:
время на реализацию программы + суммарное сэкономленное процессорное время за максимальное из времен написания

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

Re: C vs ASM - очередной виток

Duhas » 06 апр 2009, 09:52

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

Re: C vs ASM - очередной виток

Виталий » 06 апр 2009, 09:57

Если это не проще, не быстрее и не дешевле... то зачем?

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

Компиляторы Фортрана очень неплохи кстати.

Re: C vs ASM - очередной виток

=DeaD= » 06 апр 2009, 10:42

Duhas писал(а):программерский моск + асм = куча возможностей по оптимизации...

Которые никуда в Сях не деваются :)

Re: C vs ASM - очередной виток

executer » 06 апр 2009, 11:08

Блин, ну вы сравниваете что лучше тапки или шорты? Можно обойтись чемто одним. но и то и то нужно!
Ктонибудь тут хоть раз забил память меге какойнибудь своим Сишным кодом??
Маленькую прогу можно на асм наваять. Большую, структурированую - лучше на Си - есть шанс что ее еще ктото поймет.
Другое дело зачем Бейсик, но глупо отрицать его полезность если он когото устраивает :pardon:

ПС Вчера читал про ВиндовсАсм - под MASM компилятор, так там код асмовский, но поддержубтся макрокомманды для организации ветвления, циклов.. вобщем позволяет структуру Си использовать, но писать на асм. Может и для АВР каданить сделают такой компиллятор (может уже?)

Re: C vs ASM - очередной виток

Duhas » 06 апр 2009, 11:13

деваются.. еще как... си на то и язык высокого уровня.. в сях мы работает с готовыми типами данных.. по идее можем канешна и свои мастрячить но чаще нет.. я например дробную часть коэффициентов себе сделал через 256-е части от целого и на стандартные 1000-ные...

ПС эээм, ну как бы никто свои макросы сделать не мешает...

я лично не говорю ж всем, жопа ваше си идите на асм... меня парит что народ отрицает возможность написания любых программ на асм...


Rambler\'s Top100 Mail.ru counter