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

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

|
На досуге интересует мнение всех кто занимается программированием МК - коль долго еще возможно будет использовать ASM в разработках. Понимаю что тапочки и нужно спешить осваивать C (аппаратные возможности растут и проще написать A*B, например...). Но как сейчас какие плюсы - пишешь то что надо, не зависишь от уровня тупости разработчиков C компилятора, т.е. все на виду (предпочитаю надежность быстроте разработки). Но бесит реализация арифметики на ASMе. Ваше мнение, господа?
|
|
|
|
|
 |
Ответов
|
Jun 28 2006, 02:34
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Цитата Но компиляторы используют обобщённые методы оптимизации, дающие средний результат на типичных задачах. Вы не любите котов? Вы просто не умеете их готовить  Сам долго исповедывал взгляды сходные вашим....Пока жизнь не заставила хорошенько покопаться в Сишных листингах. Итак, чем же код генерируемый компилятором отличается от написанного ручками? 1.Стартапом 2.Вызовами/завершениями функций. Циклы, ветвления, присваивания итп. это и есть тривиальные задачи, котроые мало-мальски нормальный компилятор сгенерит также, как и самый искушенный программист. Стартап освобождает от совершенно рутинной и тривиальной задачи начальной инициализации памяти.Если у вас на этот счет свои соображения - никто не запрещает вам подключать собственный стартап или вообще обходиться без такового. Наиболее больной вопрос - вызовы функций и передача аргументов. Да, нужно это или нет, компилятор приведет все вызовы к стандартному виду. Это дает вполне очевидное преимущество - не задумываться о порядке вызова функций - аргументы передаются гарантировано, гарантировано сохраняется контекст. Расплата за это - несколько больший расход стека и снижение быстродействия. Однако, если вы более-менее хорошо знаете свой компилятор, это не есть проблема - вы четко знаете, сколько аргументов передастся через регистры, сколько раз вызовется push/pop. Дальше все в ваших руках - минимизация передаваемых аргументов, минимизация локальных переменных, привязка переменных к регистрам, inline -функции.Если вы правильно описали задачу - С быстро сгенерит вам работоспособный код, избавив от рутины и ошибок связанных с ней. Если время позволяет ее вылизывать - вы можете сделать это не хуже , чем на ассемблере. Если нет, можете оставить все как есть. Меньшее количество текста и недоступные явно метки и распределение памяти сильно облегчит модификцию кода методом copy/paste. Вместе с тем они не будут представлять из себя черный ящик - на физические адреса вы сможете посмотреть в любой момент. P.S.Здесь длинный спор между мной и dxp на тему оптимизации у gcc и IAR. Приводится ассемблерный код, можете ознакомится. http://electronix.ru/forum/index.php?showtopic=12284&st=75Интересным является два подхода к оптимизации - прямолинейный у gcc и с вывертами у IAR. Так что, и компилятор можно подыскать по вкусу.
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
Сообщений в этой теме
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 CD_Eater Цитата(vet @ Jun 22 2006, 15:40) Поправьт... Jun 22 2006, 16:23 vet Цитата(CD_Eater @ Jun 22 2006, 20:23) Цит... Jun 22 2006, 19:20 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 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 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|