|
ASM: приказали долго жить?, Сколько еще продержится |
|
|
|
Jun 19 2006, 23:28
|
Участник

Группа: Новичок
Сообщений: 38
Регистрация: 12-09-05
Пользователь №: 8 464

|
На досуге интересует мнение всех кто занимается программированием МК - коль долго еще возможно будет использовать ASM в разработках. Понимаю что тапочки и нужно спешить осваивать C (аппаратные возможности растут и проще написать A*B, например...). Но как сейчас какие плюсы - пишешь то что надо, не зависишь от уровня тупости разработчиков C компилятора, т.е. все на виду (предпочитаю надежность быстроте разработки). Но бесит реализация арифметики на ASMе. Ваше мнение, господа?
|
|
|
|
|
 |
Ответов
|
Jun 22 2006, 16:23
|
Частый гость
 
Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595

|
Цитата(vet @ Jun 22 2006, 15:40)  Поправьте, если я ошибаюсь, но, на мой взгляд, требования к ОЗУ одинаковы что у ассемблерной программы, что у сишной, и определяются исключительно потребностями алгоритма. Возможно, что я не прав, но меня пугает "вредная привычка" всех компиляторов - фривольное обращение со стеком. Типичный размер стека в моих программах = 6 байт (один уровень подпрограмм внутри фоновой задачи + один уровень подпрограмм внутри обработчика прерывания + один вызов обработчика прерывания). Как ни парадоксально, это вписывается в стандарты "хардварного" стека в старых МК (где не было ОЗУ). Да и за счёт человеческой оптимизации кода всю возню с передачей параметров внутрь функции можно сделать не столь прожорливой к ОЗУ. Цитата(vet @ Jun 22 2006, 15:40)  Свежий пример - возникла необходимость добавить функций в устройство; заменили в приборе мегу128 на SAM7S, т.к. перестало хватать ОЗУ под алгоритм. Весь перенос софта в результате был сведён к освоению новой периферии. Сколько бы я переносил его, будь он написан на ассемблере - страшно и представить  Как Вам так повезло, однако... Я, помнится, когда переводил программу с Тини15 на Тини13, ой как намучился - из-за того, что в Тини13 один таймер вместо двух и частота ШИМа меньше, пришлось перелопачивать большую часть логики работы программы. И это - различие периферии между очень похожими друг на друга МК. Цитата(beer_warrior @ Jun 22 2006, 16:28)  сложные математические алгоритмы (фурье, сжатие) не зависят от используемого железа. Хы-хы. А для чего существуют готовые библиотеки подпрограмм, заточенные под разные МК ? В случае, если Вы написали собственный архиватор, Ваша позиция понятна. Но вот касательно Фурье (а также криптографии и т.п.) переносить Си-шную программу - неумный шаг. Для ресурсоёмких вычислений важна оптимизация, которая индивидуальна для каждого проца. То есть, по-хорошему, вычислительные процедурки надо бы переписать на асме (или воспользоваться готовыми, написанными другими авторами для нужного Вам МК). Видимо, вопрос скорости вычислений Вас прежде не волновал... Цитата(beer_warrior @ Jun 22 2006, 16:28)  Знаете ли быват очень приятно, общие константы и структуры расшарить между софтом МК и РС. Одно изменение попадает сразу в оба проекта  А что мешает, собственно ? Простенькая утилита, которая переводит определения констант из Си-шного формата записи в АСМ или наоборот, пишется за две минуты. А структуру можно понимать как список констант, равных смещениям переменных относительно начала структуры.
|
|
|
|
|
Jun 22 2006, 19:20
|
Знающий
   
Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32

|
Цитата(CD_Eater @ Jun 22 2006, 20:23)  Цитата(vet @ Jun 22 2006, 15:40)  Свежий пример - возникла необходимость добавить функций в устройство; заменили в приборе мегу128 на SAM7S, т.к. перестало хватать ОЗУ под алгоритм. Весь перенос софта в результате был сведён к освоению новой периферии. Сколько бы я переносил его, будь он написан на ассемблере - страшно и представить  Как Вам так повезло, однако... Я, помнится, когда переводил программу с Тини15 на Тини13, ой как намучился - из-за того, что в Тини13 один таймер вместо двух и частота ШИМа меньше, пришлось перелопачивать большую часть логики работы программы. И это - различие периферии между очень похожими друг на друга МК. Собственно, удивительного в этом нет; следую правилу максимально отделять логику программы от особенностей работы с периферией, ресурсы используемых м/к это позволяют (используем сравнительно навороченные кристаллы, мега8 и выше). При смене чипа, таким образом, переписываются только модули инициализации и обслуживания периферии, т.е. практически вся программа перекомпилируется с косметическими изменениями. Так оно в этом случае и получилось. Освоить периферию SAM - это был, конечно, тот ещё цирк, но, кроме этого, в исходниках почти ничего не изменилось, разве что оптимизации, касающиеся разрядности - при том, что прошивка занимала больше пол-меги128, в ней пару кбайт занимают таблицы, строки и т.п. В конечном счёте осталось ещё время повозиться с ассемблерной оптимизацией алгоритмов кодирования, без необходимости, просто ради удовольствия. В таких вот условиях в преимуществах программирования на Си сомневаться не приходится ни секунды
--------------------
Главная линия этого опуса ясна мне насквозь!
|
|
|
|
Сообщений в этой теме
OlegIvanov ASM: приказали долго жить? Jun 19 2006, 23:28 prottoss Цитата(OlegIvanov @ Jun 20 2006, 07:28) Н... Jun 19 2006, 23:58 haker_fox Цитата(OlegIvanov @ Jun 20 2006, 08:28) Н... Jun 20 2006, 00:11 arttab Даже программируя на асме не всегда можно получить... Jun 20 2006, 02:54 defunct Цитата(arttab @ Jun 20 2006, 05:54) Даже ... Jun 20 2006, 05:55 Harbour Сильно на C разгонишься когда памяти 512 байт. Jun 20 2006, 04:25 dxp Цитата(Harbour @ Jun 20 2006, 11:25) Силь... Jun 20 2006, 05:49 viael Цитата(Harbour @ Jun 20 2006, 08:25) Силь... Jun 29 2006, 06:28 vanner ЦитатаДаже программируя на асме не всегда можно по... Jun 20 2006, 05:03 Сергей Борщ Цитата(vanner @ Jun 20 2006, 08:03) Цитат... Jun 20 2006, 06:56  IgorKossak Цитата(Сергей Борщ @ Jun 20 2006, 09:56) ... Jun 20 2006, 07:49   Сергей Борщ Цитата(IgorKossak @ Jun 20 2006, 10:49) Ц... Jun 20 2006, 08:37    OlegIvanov Цитата(Сергей Борщ @ Jun 20 2006, 11:37) ... Jun 20 2006, 15:29     Сергей Борщ Цитата(OlegIvanov @ Jun 20 2006, 18:29) В... Jun 20 2006, 16:00    SasaVitebsk Цитата(Сергей Борщ @ Jun 20 2006, 11:37) ... Jun 20 2006, 21:09     CDT ЦитатаПростите, может я не понял вопроса, а что ва... Jun 21 2006, 13:19      white.wind Цитата(CDT @ Jun 21 2006, 17:19) ..хотя б... Jun 21 2006, 13:43       COMA Цитата(white.wind @ Jun 21 2006, 17:43) Н... Jun 22 2006, 11:45       _Bill Цитата(white.wind @ Jun 21 2006, 16:43) Ц... Jun 22 2006, 11:59        white.wind Цитата(_Bill @ Jun 22 2006, 15:59) кодоге... Jun 22 2006, 13:09     Сергей Борщ Цитата(SasaVitebsk @ Jun 21 2006, 00:09) ... Jun 21 2006, 16:26      SasaVitebsk Цитата(Сергей Борщ @ Jun 21 2006, 19:26) ... Jun 21 2006, 19:45 arttab Глюки компилятора неисключены. и ошибки юзера, кот... Jun 20 2006, 05:53 beer_warrior Как говорится - пока существуют процессоры будет с... Jun 20 2006, 05:57 arttab ЦитатаХм.. "компилятор" асма более верно... Jun 20 2006, 06:13 otrog Цитата(arttab @ Jun 20 2006, 10:13) Знаю ... Jun 20 2006, 06:33 _Bill Цитата(OlegIvanov @ Jun 20 2006, 02:28) Н... Jun 20 2006, 06:29 kolobok0 Цитата(_Bill @ Jun 20 2006, 10:29) ...Асс... Jun 20 2006, 11:43 IgorKossak Хм, надо же.
Опять подняли религиозную тему!
Н... Jun 20 2006, 06:38 tag Цитата(IgorKossak @ Jun 20 2006, 10:38) Х... Jun 21 2006, 14:26 white.wind Попробовал asm, ничего, не страшный совсем
Счас ... Jun 20 2006, 06:56 defunct Цитата(white.wind @ Jun 20 2006, 09:56) П... Jun 20 2006, 19:54  dxp Цитата(defunct @ Jun 21 2006, 02:54) Цита... Jun 21 2006, 03:27   defunct Цитата(dxp @ Jun 21 2006, 06:27) Цитата(d... Jun 22 2006, 10:56    dxp Цитата(defunct @ Jun 22 2006, 17:56) Я то... Jun 22 2006, 12:14     _Bill Цитата(dxp @ Jun 22 2006, 15:14) Дело не ... Jun 22 2006, 12:21     IgorKossak Цитата(dxp @ Jun 22 2006, 15:14) ...Отвеч... Jun 22 2006, 13:00     defunct Цитата(dxp @ Jun 22 2006, 15:14) Цитата(d... Jun 22 2006, 20:52      dxp Цитата(defunct @ Jun 23 2006, 03:52) Ну х... Jun 23 2006, 03:32       defunct Цитата(dxp @ Jun 23 2006, 06:32) Во-от... Jun 23 2006, 20:46        dxp Цитата(defunct @ Jun 24 2006, 03:46) Цита... Jun 26 2006, 04:56       vet Цитата(dxp @ Jun 23 2006, 07:32) Мы здесь... Jun 23 2006, 21:37        dxp Цитата(vet @ Jun 24 2006, 04:37) Цитата(d... Jun 26 2006, 05:55 vanner Это понятно, разработчики компиляторов тоже люди, ... Jun 20 2006, 09:03 Сергей Борщ Цитата(vanner @ Jun 20 2006, 12:03) Это п... Jun 20 2006, 09:09 Serj78 начинал на С, (cv) потом для тини12 пришлось поизу... Jun 20 2006, 10:23 forever failure Цитата(OlegIvanov @ Jun 20 2006, 05:28) к... Jun 21 2006, 06:03 Alex_Pol 2 OlegIvanov. Слухи о смерти асма сильно преувелич... Jun 21 2006, 14:06 CD_Eater Всегда писал для AVR-ок на АСМе и не собираюсь пер... Jun 22 2006, 11:03 vet CD_Eater
Поправьте, если я ошибаюсь, но, на мой вз... Jun 22 2006, 11:40 COMA чтение из ОЗУ
инкремент
запись в ОЗУ
3 команды Jun 22 2006, 12:27 _Bill Цитата(COMA @ Jun 22 2006, 15:27) чтение ... Jun 22 2006, 12:37 beer_warrior ЦитатаБольшой минус АСМа - плохая переносимость на... Jun 22 2006, 12:28 COMA Случаи они разные бывают. Регистров может и не хва... Jun 22 2006, 12:43 _Bill Цитата(COMA @ Jun 22 2006, 15:43) Случаи ... Jun 22 2006, 12:52 vet IgorKossak,
ну, Java-процессор выполняет всё-таки ... Jun 22 2006, 13:05 Stanislav Цитата(IgorKossak @ Jun 22 2006, 17:00) Ц... Jun 22 2006, 14:39 defunct Цитата(Stanislav @ Jun 22 2006, 17:39) Бы... Jun 22 2006, 21:26  Stanislav Цитата(defunct @ Jun 23 2006, 01:26) Наск... Jun 23 2006, 16:06 beer_warrior BTW, что меня убивало в 51 это односторонний перех... Jun 22 2006, 21:05 upc2 Думаю, что ассемблер "умрет".При всех св... Jun 26 2006, 05:48 vet dxp, спасибо за подробный ответ. Jun 26 2006, 06:37 IgorKossak dxp, насколько я знаю применение аппаратного умнож... Jun 26 2006, 06:40 dxp Цитата(IgorKossak @ Jun 26 2006, 13:40) d... Jun 26 2006, 06:52 CD_Eater dxp, тест очень неудачный
Сравнение вычислительных... Jun 26 2006, 13:20 dxp Цитата(CD_Eater @ Jun 26 2006, 20:20) dxp... Jun 26 2006, 13:59  defunct Цитата(dxp @ Jun 26 2006, 16:59) Если бы ... Jun 28 2006, 12:58   dxp Цитата(defunct @ Jun 28 2006, 19:58) Не н... Jun 29 2006, 05:24    Kopa Ссылка на интересную статью и ресурс для роботостр... Jun 29 2006, 05:32    pokos Цитата(dxp @ Jun 29 2006, 09:24) А вот яд... Jun 29 2006, 06:31     dxp Цитата(pokos @ Jun 29 2006, 13:31) Цитата... Jun 29 2006, 07:33      pokos Цитата(dxp @ Jun 29 2006, 11:33) ....А то... Jun 29 2006, 08:41       dxp Цитата(pokos @ Jun 29 2006, 15:41) Цитата... Jun 29 2006, 09:27    singlskv Цитата(dxp @ Jun 29 2006, 09:24) Вы еще з... Jun 29 2006, 08:04 SpiritDance dxp
Поддерживаю Вас. В MSP430 ядро несравнено лучш... Jun 26 2006, 17:41 CD_Eater dxp
Я не говорю, что AVR существенно мощнее )))))... Jun 26 2006, 20:30 haker_fox Цитата(CD_Eater @ Jun 27 2006, 05:30) Моё... Jun 27 2006, 01:29 spf Цитата(CD_Eater @ Jun 27 2006, 02:30) Трё... Jun 27 2006, 03:47  Kopa Цитата(spf @ Jun 27 2006, 06:47) ИМХО: Та... Jun 27 2006, 04:39   SpiritDance Цитата(Kopa @ Jun 27 2006, 08:39) А так н... Jun 27 2006, 04:51    Kopa Цитата(SpiritDance @ Jun 27 2006, 07:51) ... Jun 27 2006, 05:04     SpiritDance Цитата(Kopa @ Jun 27 2006, 09:04) P.S. Вс... Jun 27 2006, 11:28      Kopa Цитата(SpiritDance @ Jun 27 2006, 14:28) ... Jun 28 2006, 03:09  CD_Eater Цитата(spf @ Jun 27 2006, 07:47) ЦитатаПо... Jun 27 2006, 18:42   spf Цитата(CD_Eater @ Jun 28 2006, 00:42) Лич... Jun 28 2006, 01:06 spf Цитата(CD_Eater @ Jun 27 2006, 02:30) Трё... Jun 27 2006, 06:10  CD_Eater Цитата(spf @ Jun 27 2006, 10:10) Цитата(C... Jun 27 2006, 18:05 beer_warrior ЦитатаНо компиляторы используют обобщённые методы ... Jun 28 2006, 02:34 dxp Цитата(beer_warrior @ Jun 28 2006, 09:34)... Jun 28 2006, 03:48 forever failure Судя по объёму флуда, - асм жив, и более того - al... Jun 28 2006, 03:57 upc2 Еше 2 года назад писал Vxd драйверы под windows на... Jun 29 2006, 05:32 dxp Цитата(upc2 @ Jun 29 2006, 12:32) Прощай ... Jun 29 2006, 05:55  upc2 Цитата(dxp @ Jun 29 2006, 08:55) Цитата(u... Jun 29 2006, 07:40   dxp Цитата(upc2 @ Jun 29 2006, 14:40) Цитата(... Jun 29 2006, 08:17    Kopa [quote name='dxp' date='Jun 29 2006, 1... Jun 30 2006, 03:30 forever failure Ну вот ещё пример - о вечном. Совершенно прикладна... Jun 29 2006, 06:27 upc2 Ну,в общем я с вами согласен.Мы говорим об одном и... Jun 29 2006, 08:59 beer_warrior Чтобы не путаться в терминологии, наверное надо че... Jun 30 2006, 05:23
2 страниц
1 2 >
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|