|
Прибавить константу к регистру! |
|
|
|
 |
Ответов
|
Mar 6 2008, 20:52
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(starter48 @ Mar 6 2008, 14:07)  Этот процессор задумывался для работы с компиляторами языков высого уровня. Когда пишешь на Си, о таких мелочах и не задумываешься На асме в наше время пишут только критичные участки кода. Абсолютно верно! Иногда все-таки нет-нет, да появляются люди, которым приходится объяснять с самого начала, от Адама и Евы. Ну что ж, терпите. Ядро AVR уникальное. Разрабатывалось оно не в одиночку "железячниками", а в тесном контакте с программистами, которые пишут компиляторы. И не просто компиляторы, а Си-компиляторы. Это было сделано преднамеренно. ATMEL (и не только она одна) проанализировала стоимость конечного изделий, и пришла к выводу, что подавляюще большую долю при создании девайса занимает стоимость разработки программного обеспечениия. Итенденция эта год от года только увеличивается. Если б АТМЕЛ заботилась только о своих проблемах, она бы родила что-то другое. Но АТМЕЛ играет в многоходовые игры, и она озаботилась уменьшением себестоимости изделий своих клиентов в целом. А поскольку наибольшая стоимость в разработке изделий падает на ПО, то было бы не плохо это как-то уменьшить. Как? Еще один анализ, теперь уже касающийся разработки ПО. Программисты сейчас пишут ПО в основном на Си. Почему? -- Да, опять же исходя из экономических сооображений! Программа написанная на Си будет стоить дешевле, проги написанной на ассемблере. (Я сейчас не хочу вдваться в дискуссию по поводу отвязанных от типа ядра программистов Си-шников, и жестко привязанных к типу ядра программистов-ассеблеристов, и количества их на рынке труда.) Важно понять то, что если удастся сделять ядро такое, что при написании программ на Си будет генерироваться объем кода незначительно худший, чем при написании программ на ассемблере, то это будет весьма востребованное на рынке ядро. АТМЕЛу удалось сделать такое ядро. Резюме будет следущее. Господа-товарищи, АВР -- уникальное ядро. Оно "заточено" под Си-шное программирование. А то обстоятельство, что для АВР можно писать на ассемблере, так это факультативно, хотите -- пишите! Если "полистать" и-нет, то можно заметить, что для АВР программы в основном люди пишут на Си. Как сказал starter48, только критические участки кода пишутся на асме. И такой подход выбран это не ради религиозных войн программистов, а ради снижения себестоимости изделия. Но жизнь -- богатая штука, и порой встречаются люди (кустари, волки-одиночки), которые неповязаны на экономический фактор, не озабочены вопросами прибыли и себестоимости. В основном это люди -- любители или студенты, т.е. люди не связанные с производством. Конечно, им сложно понять специфику АВР-ядра. // Извините, если это было очень долго и нудно. Что касается высказывания " условные пропуски оказались какими-то странными", то опять-таки надо смотреть несколько глубже. Вместо подробного описания здесь, я очень рекомендую прочитать серию статей И.Каршенбойма http://www.compitech.ru/html.cgi/rubrikator/micros.htmХотя читать их несколько сложно... (мне, как минимум, несколько раз по ходу чтения приходила мысль задвинуть на них, но я упорно вгрызался в проблему. Сейчас я нисколько не жалею об этом. И более того, я даже рекомендую их к прочтению.) Итак, хотя читать эту серию статей сложно, и специфика там не совсем наша, но автор четко расписываеет почему именно в таком направлении идет развитие ядер. Чем хороши файловые регистровы, почему сейчас использубтся два стека (отдельный стек для адресов возвратов и отдельный стек для аргументов функций), чем выгодны " странные условные пропуски", почему Гарвардская архитектура работает быстрее Фон-Неймановской, и т.д. Читайте, и не смотрите на то, что многое покажется вам не понятным. Со временем вы поймете. Удачи!
Сообщение отредактировал zhevak - Mar 6 2008, 20:52
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Mar 6 2008, 21:00
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(zhevak @ Mar 6 2008, 23:30)  ... Разрабатывалось оно не в одиночку "железячниками", а в тесном контакте с программистами, которые пишут компиляторы. И не просто компиляторы, а Си-компиляторы. Это было сделано преднамеренно. ATMEL (и не только она одна) проанализировала стоимость конечного изделий, и пришла к выводу, что подавляюще большую долю при создании девайса занимает стоимость разработки программного обеспечениия. Итенденция эта год от года только увеличивается. ... Господа-товарищи, АВР -- уникальное ядро. Оно "заточено" под Си-шное программирование. ... Это Вы начитались творений маркетологов фирмы Atmel!!!! AVR ядро - студенческий прект!!!! Как минимум 3 свойства ядра создающие трудности для генерации эффективного кода С компилятором. 1. Неравноправность регистров, для половины регистров нельзя выполнять дейсвия с константами. 2. Отсутствие атомарной записи в регистр стека. Приходиться отключать прерывания при записи в него (GCC), или использовать два стека (IAR). 3. Некоторые команды работают с фиксироваными регистрами (r0, r1) MUL*, LPM. И это все мелочи - стандарт языка С предпологает единое адресное пространство - ни один процесор с Гарвадской архитектурой не имеет право называться С ориентированым. Анатолий.
Сообщение отредактировал aesok - Mar 6 2008, 21:38
|
|
|
|
|
Mar 6 2008, 22:08
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(aesok @ Mar 7 2008, 02:00)  Это Вы начитались творений маркетологов фирмы Atmel!!!! AVR ядро - студенческий прект!!!!
Как минимум 3 свойства ядра создающие трудность для генерации эффективного кода С компилятором.
1. Неравноправность регистров, для половины регистров нельзя выполнять дейсвия с константами.
2. Отсутствие атомарной записи в регистр стека. Приходиться отключать прерывания при записи в него (GCC), или использовать два стека (IAR).
3. Некоторые команды работают с фиксироваными регистрами (r0, r1) MUL*, LPM.
И это все мелочи - стандарт языка С предпологает единое адресное пространство - ни один процесор с Гарвадской архитектурой не имеет право называться С ориентированым.
Анатолий. Уважаемый Анатолий, Это очень хорошо, что Вы очень осведомленный человек. Очень не хочу с вами вступать в бессмысленную полемику. Но поскольку Ваш пост -- это почти персональный вызов, позволю себе отметить только три момента. 1. "Это Вы начитались творений маркетологов фирмы Atmel!!!! AVR ядро - студенческий прект!!!!" Этот выпад я просто проигнорирую. Но порошу Вас указать конкретные источники, которые бы мне следовало "почитать", дабы не вступать с Вами в столь яростное противоречие. Я -- парень неленивый, и даже где-то упорный. Пожалуйста, перечислите здесь, что Вы читали. Я думаю, что приведенный Вами список будет полезен всем, а не только мне. 2. Где было сказано, что АВР -- идельное ядро? Такого я не говорил. Другими словами, ядро АВР -- нормальное рабочее ядро. Но как и в любой вещи в нем тоже есть недостатки. Некоторые из них Вы перечислили. Конечно, не все удалось сделать "на отлично" АТМЕЛ-овским разработчикам. Если б ядро было идеальное, т.е. не содержало недостатков, то наверное бы другие 8-разрядные ядра занимали бы еще меньшую долю на рынке. 3. "ни один процесор с Гарвадской архитектурой не имеет право называться С ориентированым." Ну это уже придирки! Вы же не можете утверждать, что ПО "для Фон-Неймана" пишется на чистом Си, а ПО "для Гарварда" -- на чем-то другом, но точно -- не на Си. Синтаксисы языка и для той, и для другой архитектур сильно совпадают, поэтому, какая разница -- чистый-ли это Си, или это Си, расширенный для работы с "Гарвардом". Суть от этого не меняется. Си он и в Африке Си, разве что только черный!
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Mar 6 2008, 23:17
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата Я думаю, что приведенный Вами список будет полезен всем, а не только мне. Цитата(singlskv @ Mar 7 2008, 03:44)  Воздержусь от комментариев. Пусть другие участники форума оценят полезность "списка". Считаю, что продолжение дискуссии -- это пустая трата времени, она никому не принесет пользы, каждый из нас останется при своем мнении, а наблюдатели не почерпнут для себя ничего умного. Мне остается только поблагодарить вас за участие. Спасибо и удачи Вам!
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Mar 7 2008, 00:27
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(zhevak @ Mar 7 2008, 02:17)  Считаю, что продолжение дискуссии -- это пустая трата времени, она никому не принесет пользы, каждый из нас останется при своем мнении, а наблюдатели не почерпнут для себя ничего умного. Мне остается только поблагодарить вас за участие. Спасибо и удачи Вам!  Я не применяю эпитеты хороший или полохой применительно к контролерам, это не инженерные понятия, оставим их для фанатов. Да Вы правы, эта дискусия выходит за рамки этого форума. Здесь обсуждают применение AVR-ок а не проблемы написания для него компиляторов. Я своим постом хотел выразить несогласие с рекламными заявлениями фирмы Atmel, и озвученые Вами, что AVR ядро являются какими-то специально разработаным для компилятора С, и привел несколько свойств ядра которые мешают генерировать максимально эффекивный код компилятором. При этом для AVR существуют несколько разных компиляторов С и эффиктивность их применения доказана практически. Анатолий.
|
|
|
|
Сообщений в этой теме
777777 Прибавить константу к регистру! Mar 6 2008, 08:11 starter48 Цитата(777777 @ Mar 6 2008, 14:11) Есль к... Mar 6 2008, 08:26 777777 Цитата(starter48 @ Mar 6 2008, 11:26) Отн... Mar 6 2008, 08:38  SasaVitebsk Цитата(777777 @ Mar 6 2008, 12:38) Мда, м... Mar 6 2008, 08:50   vet Цитата(SasaVitebsk @ Mar 6 2008, 11:50) П... Mar 6 2008, 09:08   777777 Цитата(SasaVitebsk @ Mar 6 2008, 11:50) А... Mar 6 2008, 10:19    defunct Цитата(777777 @ Mar 6 2008, 12:19) Ага, н... Mar 6 2008, 11:11     rx3apf Цитата(defunct @ Mar 6 2008, 14:11) А зач... Mar 6 2008, 11:46      ae_ Цитата(rx3apf @ Mar 6 2008, 20:46) IMHO, ... Mar 6 2008, 15:37      Andrew O. Shadoura Цитата(rx3apf @ Mar 6 2008, 13:46) Если б... Mar 10 2008, 04:07    SasaVitebsk Цитата(777777 @ Mar 6 2008, 14:19) Условн... Mar 6 2008, 22:03     aesok Цитата(SasaVitebsk @ Mar 7 2008, 01:03) 1... Mar 6 2008, 22:56      SasaVitebsk Цитата(aesok @ Mar 7 2008, 02:56) В идеал... Mar 6 2008, 23:55       777777 Цитата(SasaVitebsk @ Mar 7 2008, 02:55) К... Mar 8 2008, 18:12        SasaVitebsk Цитата(777777 @ Mar 8 2008, 22:12) Думаю ... Mar 9 2008, 15:22         =GM= Цитата(SasaVitebsk @ Mar 9 2008, 15:22) О... Mar 9 2008, 16:47          SasaVitebsk Цитата(=GM= @ Mar 9 2008, 20:47) Это был ... Mar 9 2008, 17:23           =GM= Цитата(SasaVitebsk @ Mar 9 2008, 17:23) К... Mar 10 2008, 11:50  KRS Цитата(777777 @ Mar 6 2008, 11:38) Мда, м... Mar 6 2008, 09:05  starter48 Цитата(777777 @ Mar 6 2008, 14:38) Мда, м... Mar 6 2008, 09:07 Rst7 Цитатаtst r0
skip if pl
neg r0
А какая разница с ... Mar 6 2008, 10:26 Brutaller Цитата(ae_ @ Mar 6 2008, 18:37) tavrasm у... Mar 6 2008, 18:41 Nanobyte Цитата(Brutaller @ Mar 6 2008, 21:41) Да ... Mar 6 2008, 19:50 Lepeksiy GNU assembler (в том числе "as.exe" из к... Mar 6 2008, 19:31 Brutaller Цитата(Lepeksiy @ Mar 6 2008, 22:31) GNU ... Mar 6 2008, 19:43 Lepeksiy Цитата(Brutaller @ Mar 6 2008, 21:43) А ч... Mar 6 2008, 20:21 Brutaller Цитата(Nanobyte @ Mar 6 2008, 22:50) Прил... Mar 6 2008, 19:59 SasaVitebsk PS: Ещё одно дополнение.
Вот выдержка из последнег... Mar 7 2008, 00:29 aesok ЦитатаОтветьте просто. Какой МК, по-вашему идеальн... Mar 7 2008, 00:55  vet Цитата(aesok @ Mar 7 2008, 03:55) Разрабо... Mar 7 2008, 08:22 Дон Амброзио Цитата(777777 @ Mar 6 2008, 11:11) Есль к... Mar 7 2008, 07:30 Rst7 ЦитатаА по-моему, у всего своя причина должна быть... Mar 9 2008, 19:45 SasaVitebsk Да. Вот ведь прикол. Неоднократно удивлялся.
Хоро... Mar 9 2008, 23:56 rezident Цитата(SasaVitebsk @ Mar 10 2008, 04:56) ... Mar 10 2008, 00:11 Rst7 ЦитатаВ pdp-11 для любого обмена использовалась ОД... Mar 10 2008, 12:05 Дон Амброзио Цитата(Rst7 @ Mar 10 2008, 15:05) никто н... Mar 10 2008, 12:20 =GM= Цитата(Rst7 @ Mar 10 2008, 12:05) А в чем... Mar 10 2008, 13:28  Дон Амброзио Цитата(=GM= @ Mar 10 2008, 16:28) Положим... Mar 10 2008, 13:38   =GM= Цитата(Дон Амброзио @ Mar 10 2008, 13:38)... Mar 10 2008, 14:01    Дон Амброзио Цитата(=GM= @ Mar 10 2008, 17:01) Не на ч... Mar 10 2008, 19:18     KRS Цитата(Дон Амброзио @ Mar 10 2008, 22:18)... Mar 10 2008, 20:43 Rst7 ЦитатаНикакого сравнения с ассемблером ибм370
Вы,... Mar 10 2008, 18:46 =GM= Цитата(Rst7 @ Mar 10 2008, 18:46) Вы, вид... Mar 10 2008, 23:29  Baser Цитата(=GM= @ Mar 11 2008, 01:29) И, пожа... Mar 11 2008, 15:24   =GM= Цитата(Baser @ Mar 11 2008, 15:24) забав... Mar 11 2008, 17:46 SasaVitebsk 2 =GM=
Вот я и говорю, что при использовании комп... Mar 10 2008, 20:41 Rst7 ЦитатаВот, например, команда JMP @20(R1) может быт... Mar 11 2008, 06:36 =GM= Цитата(Rst7 @ Mar 11 2008, 06:36) Просто ... Mar 11 2008, 13:26 Rst7 ЦитатаНемного вы недопоняли, и не так сделали. Зде... Mar 11 2008, 14:19 =GM= Цитата(Rst7 @ Mar 11 2008, 14:19) Да, пар... Mar 11 2008, 17:22  singlskv Цитата(=GM= @ Mar 11 2008, 20:22) Не отве... Mar 11 2008, 18:18   =GM= Цитата(singlskv @ Mar 11 2008, 18:18) Неп... Mar 11 2008, 21:35 Rst7 ЦитатаЯ читаю правильно слева-направо "игрек ... Mar 11 2008, 17:30 IgorKossak Складывается впечатление, господа, что =GM= и Rst7... Mar 12 2008, 08:06 Rst7 Да сам вопрос то был
Цитатагде же addi, adci?
Во... Mar 12 2008, 08:37 777777 А где же "исключающее ИЛИ" с константой?... Mar 19 2008, 06:34  IgorKossak Цитата(777777 @ Mar 19 2008, 08:34) А где... Mar 19 2008, 08:45   777777 Цитата(IgorKossak @ Mar 19 2008, 11:45) И... Mar 19 2008, 09:57 Rst7 ЦитатаНу, в общем, да. Я надеялся, что в атмеле та... Mar 19 2008, 10:13 777777 Цитата(Rst7 @ Mar 19 2008, 13:13) Именно ... Mar 19 2008, 10:19  Дон Амброзио Цитата(777777 @ Mar 19 2008, 13:19) Не по... Mar 19 2008, 10:26 Rst7 ЦитатаА вот то, что таким образом можно инвертнуть... Mar 19 2008, 10:30 Дон Амброзио Цитата(Rst7 @ Mar 19 2008, 13:30) Так учи... Mar 19 2008, 10:39 KRS Цитата(Rst7 @ Mar 19 2008, 13:30) Так учи... Mar 19 2008, 10:47 IgorKossak Цитата(Дон Амброзио @ Mar 19 2008, 12:39)... Mar 19 2008, 12:38 Nanobyte Эта фича ещё есть у Tiny2313. Найти модели, в кото... Mar 20 2008, 18:13 =GM= Цитата(Nanobyte @ Mar 20 2008, 18:13) В р... Mar 20 2008, 21:59 IgorKossak Цитата(Nanobyte @ Mar 20 2008, 20:13) Эта... Mar 21 2008, 06:46
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|