|
|
  |
Си для AVR |
|
|
|
Sep 3 2007, 20:45
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Т.Достоевский @ Sep 4 2007, 00:32)  В чём? Глубокоуважаемый Достоевский, раз уж Вы так радеете за программирование на Asm, хочу предложить Вам небольшую задачку(которая кстати не очень хорошо решается на С), необходимо поменять в байте порядок следования битов на противоположный, т.е. вход: b7 b6 b5 b4 b3 b2 b1 b0 выход: b0 b1 b2 b3 b4 b5 b6 b7 ну конечно нужна максимальная скорость, но без таблиц(места нету  ) Покажите нам пример как нужно эфективно писать проги....
|
|
|
|
|
Sep 3 2007, 20:53
|

Местный
  
Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606

|
Цитата(singlskv @ Sep 4 2007, 00:45)  Глубокоуважаемый Достоевский, раз уж Вы так радеете за программирование на Asm, хочу предложить Вам небольшую задачку(которая кстати не очень хорошо решается на С), необходимо поменять в байте порядок следования битов на противоположный, т.е. вход: b7 b6 b5 b4 b3 b2 b1 b0 выход: b0 b1 b2 b3 b4 b5 b6 b7 ну конечно нужна максимальная скорость, но без таблиц(места нету  ) Покажите нам пример как нужно эфективно писать проги.... Дайте подумать!
|
|
|
|
|
Sep 3 2007, 21:11
|

Местный
  
Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606

|
Цитата(singlskv @ Sep 4 2007, 01:02)  Да ни вапрос, до завтрашнего утра у Вас есть время  А если серьезно ,то до завтрашнего вечера  Это максимум на обдумывание такой задачки... Дело в том что Я уже 5 лет как не пишу софт сам. Его за меня пишут люди, причём на С. ldi r18,8 ;такой задачи не разу небыло ldd r16,data ; код абсолютно переносимый clr r17 m1:rol r16 ror r17 dec r18 brne m1 ; могу добавить на i51 pic16, holtec, ARM. если конечно вспомню где это всё лежит std data,r16
Сообщение отредактировал Т.Достоевский - Sep 3 2007, 21:13
|
|
|
|
|
Sep 3 2007, 21:44
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Т.Достоевский @ Sep 4 2007, 01:24)  А пример? Яж в булевых функциях не силён. пример будет после того как Вы скажете что нужно писать на С или предоставите общественности код для данной задачки хотябы за 15 тактов  (ШУЧУ) Вобщем-то Вы уже раскрылись, написть быстрый код на асм Вы не очень то умеете... Но спорите... Я типа вроде как умею писать быстро и на С и на асм, а код типа такой: Код ; 13 words / 13 cycles ; tmp= abcdefgh mov tmp2,tmp ; tmp2= abcdefgh andi tmp2,0b01010101; tmp2= 0b0d0f0h andi tmp, 0b10101010; tmp= a0c0e0g0 bst tmp2,0 ; T=h lsr tmp2 ; tmp2= 00b0d0f0 bld tmp2,7 ; tmp2= h0b0d0f0 lsl tmp ; tmp= 0c0e0g00 C=a adc tmp, tmp2 ; tmp= hcbedgfa mov tmp2,tmp ; tmp2= hcbedgfa andi tmp2,0b01100110; tmp2= 0cb00gf0 swap tmp2 ; tmp2= 0gf00cb0 andi tmp, 0b10011001; tmp= h00ed00a add tmp, tmp2 ; tmp= hgfedcba
|
|
|
|
|
Sep 3 2007, 21:56
|

Местный
  
Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606

|
Цитата(singlskv @ Sep 4 2007, 01:44)  пример будет после того как Вы скажете что нужно писать на С или предоставите общественности код для данной задачки хотябы за 15 тактов  (ШУЧУ) Вобщем-то Вы уже раскрылись, написть быстрый код на асм Вы не очень то умеете... Но спорите... Я типа вроде как умею писать быстро и на С и на асм, а код типа такой: Код ; 13 words / 13 cycles ; tmp= abcdefgh mov tmp2,tmp ; tmp2= abcdefgh andi tmp2,0b01010101; tmp2= 0b0d0f0h andi tmp, 0b10101010; tmp= a0c0e0g0 bst tmp2,0 ; T=h lsr tmp2 ; tmp2= 00b0d0f0 bld tmp2,7 ; tmp2= h0b0d0f0 lsl tmp ; tmp= 0c0e0g00 C=a adc tmp, tmp2 ; tmp= hcbedgfa mov tmp2,tmp ; tmp2= hcbedgfa andi tmp2,0b01100110; tmp2= 0cb00gf0 swap tmp2 ; tmp2= 0gf00cb0 andi tmp, 0b10011001; tmp= h00ed00a add tmp, tmp2 ; tmp= hgfedcba Сами придумали? Если да, то этот же алгоритм должен быть на С той же длинны и времени! Но это уже будет не про С. Ещё раз повторю. Ни спорю Я про С. Я говорю что компиляторы ещё долго будут полное Г.(IAR) Это основной мой матифф! ЗЫ. Этот код и на паскале наверное такой-же по времени выйдет.
Сообщение отредактировал Т.Достоевский - Sep 3 2007, 21:58
|
|
|
|
|
Sep 3 2007, 22:14
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Т.Достоевский @ Sep 4 2007, 01:56)  Сами придумали? Если да, то этот же алгоритм должен быть на С той же длинны и времени! Но это уже будет не про С. Сам придумал, а Вы не смогли  Ничего он Вам не должен(алгоритм на С)если Вы не можете написать сами так на асемблере, то какого хрена Вы сравниваете его с С? Большинство алгоритмов я могу написать на C так что размер/скорость выполнеиния не будут отличаться от ASM более чем на 10-15% Цитата Ещё раз повторю. Ни спорю Я про С. Я говорю что компиляторы ещё долго будут полное Г.(IAR) Это основной мой матифф! Ok, я чуть подумаю какую Вам задачку подогнать, условие такое, есть набор выходных данных в памяти, есть набор выходных, есть некоторое преобразование входных в выходные , вы пишите на асм я на С, готовы ?
|
|
|
|
|
Sep 3 2007, 22:44
|

Местный
  
Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606

|
Цитата(singlskv @ Sep 4 2007, 02:14)  Ok, я чуть подумаю какую Вам задачку подогнать, условие такое, есть набор выходных данных в памяти, есть набор выходных, есть некоторое преобразование входных в выходные , вы пишите на асм я на С, готовы ? Нет. Неужели вы думаете что у меня нет на руках примеров, и Я голословно что то утверждаю? Когда мой работники не смогли в IARе впихнуть в мегу 48 то что у меня поместилось в 90с1200, это всё и выплыло. Посмотрите мои посты на сахаре и сдесь про прерывания на С. Сам Я вообше не програмист и образование у меня 5 классов (без иронии). Там были приведены примеры от програмистов. 5-и кратное увеличение кода по сравнению с асм это цветочки.
|
|
|
|
|
Sep 4 2007, 01:11
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(Т.Достоевский @ Sep 4 2007, 07:44)  Нет. Неужели вы думаете что у меня нет на руках примеров, и Я голословно что то утверждаю? Пока получается так. Цитата(Т.Достоевский @ Sep 4 2007, 07:44)  Нет. Неужели вы думаете что у меня нет на руках примеров, и Я голословно что то утверждаю? Когда мой работники не смогли в IARе впихнуть в мегу 48 то что у меня поместилось в 90с1200, это всё и выплыло. А переносимость кода? А сроки? Вы не смогли с простой задачей справиться на асме, хотя из ваших постов следует, что Вы им владеете) Цитата(Т.Достоевский @ Sep 4 2007, 07:44)  Сам Я вообше не програмист и образование у меня 5 классов (без иронии). Это отлично видно, что Вы не программист. Только противоречие получается: Вы не программист, но спорите о преимуцествах ассемблера (которым Вы не очень-то и владеете) против Си. Да и вообще, утверждаете что 5 лет не программировали, и также спорите. Да за 5 лет столько воды утекло и многое изменилось в мире embedded.
--------------------
Выбор.
|
|
|
|
|
Sep 4 2007, 04:07
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 12-04-07
Пользователь №: 26 979

|
Есть еще аргумент. Недаром архитектура микроконтроллеров как у атмела, так и у микрочипа становится Си ориентированной. Кстати код на С++ у IAR по компактности умещается в те же 10-15% в сравнении с асмом.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|