|
Во сколько раз больше будет код если писать на с/с++, а не на ассембелере?, Например для ARM9 |
|
|
|
Oct 22 2006, 16:04
|
Группа: Новичок
Сообщений: 8
Регистрация: 22-10-06
Пользователь №: 21 559

|
Люди! Кто прикидывал во сколько раз больше получается код если писать прогу на сях, а не ассемблере? Мне хотя бы грубо.
|
|
|
|
|
 |
Ответов
|
Nov 6 2006, 14:01
|
Частый гость
 
Группа: Свой
Сообщений: 126
Регистрация: 1-01-06
Из: Украина, Киев
Пользователь №: 12 759

|
Как писали выше все ОЧЕНЬ сильно зависит от мастерства программиста. Например, неделю назад писал функцию автокалибровки (C8051F06x, есть 9 каналов по 8 под диапазонов на каждом, калибровка по 12^2 отсчетам) из оболочки передается структура с кол-вом калибруемых поддиапазонов, индексами поддиапазонов и количеством напряжений на поддиапазон, например -5, -2, +2 и +5. За полчаса на Си (Keil uVision 3 котрая оптимизировалась под 8051 ~10 лет) написал ф-н. Все бы хорошо но она занимает 3 К (Flash вполне хватает 64K), но для одной функции (~50 строчек) без делений и умножений (только суммирование и сдвиги) это чересчур. Начал оптимизировать на Си – уменьшилась до 2.3 K, но код стал настолько запутанным что смысл Си как языка верхнего уровня почти пропал. Переписал на ASM ~ 0.7K но уже 300 строчек. Так что получился выигрыш > 4 раз, но времени ушло в раз 6-8 больше. На ARM может лучше компилятор работает, но выигрыш в на 5-10% на asm уж очень мало, либо программа пишется в лоб без всякой оптимизации. На asm программу можно так оптимизировать под конкретное ядро что ни один компилятор не сможет тягаться. Но на мой взгляд на Asm имеет смысл только для узких мест (максимальное быстродействие или если памятью совсем напряг) остальное или хотя каркас на Си.
Сообщение отредактировал msn - Nov 6 2006, 14:25
|
|
|
|
|
Nov 6 2006, 16:38
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(msn @ Nov 6 2006, 16:01)  Как писали выше все ОЧЕНЬ сильно зависит от мастерства программиста. Например, неделю назад писал функцию автокалибровки (C8051F06x, есть 9 каналов по 8 под Одно дело - асм 51-го: [метка:] мнемоника + [операнд приемник] + [операнд источник] Другое дело - асм ARM: [метка:] мнемоника + [суффикс типа] + [условный суффикс] + [операнд приемник] + [первый операнд источник] + [второй операнд источник] + [код операции сдвига второго операнда] + [аргумент операции сдвига] Видите сколько возможностей во втором случае? И далеко не всегда самый оптимальный путь сразу очевиден. Даже для опытного человека
|
|
|
|
|
Nov 6 2006, 17:42
|
Частый гость
 
Группа: Свой
Сообщений: 126
Регистрация: 1-01-06
Из: Украина, Киев
Пользователь №: 12 759

|
Цитата(VslavX @ Nov 6 2006, 18:38)  Цитата(msn @ Nov 6 2006, 16:01)  Как писали выше все ОЧЕНЬ сильно зависит от мастерства программиста. Например, неделю назад писал функцию автокалибровки (C8051F06x, есть 9 каналов по 8 под
Одно дело - асм 51-го: [метка:] мнемоника + [операнд приемник] + [операнд источник] Другое дело - асм ARM: [метка:] мнемоника + [суффикс типа] + [условный суффикс] + [операнд приемник] + [первый операнд источник] + [второй операнд источник] + [код операции сдвига второго операнда] + [аргумент операции сдвига] Видите сколько возможностей во втором случае? И далеко не всегда самый оптимальный путь сразу очевиден. Даже для опытного человека  Мне Asm ARM тоже не очень нравится. Но тут как я понял товарищ не от нечего делать спрашивает, наверное нужда заставляет. Я бы, например для ADSP тоже на Си все писал если бы проги не увеличивались в 4-5 раза! А ASM c его многофункциональными командами, модификаторами тоже не подарок. Пример привел для 8051, потому что были записаны объемы функций для Си и Asm.
Сообщение отредактировал msn - Nov 6 2006, 17:45
|
|
|
|
Сообщений в этой теме
I2S Во сколько раз больше будет код если писать на с/с++, а не на ассембелере? Oct 22 2006, 16:04 makc Цитата(I2S @ Oct 22 2006, 20:04) Люди... Oct 22 2006, 17:19 SpiritDance Хехе, начинается... Под аРМ даже прикидывать не хо... Oct 23 2006, 06:33 Alex03 Опять же от проекта зависит. Сколько кода непосред... Oct 23 2006, 08:39 Михаил Горюнов Цитата(I2S @ Oct 22 2006, 20:04) Люди... Oct 23 2006, 20:05 KA_ru хотел бы я посмотреть на ассемблерный проект в 100... Nov 6 2006, 11:00 mse Цитата(KA_ru @ Nov 6 2006, 14:00) хотел б... Nov 6 2006, 11:10  Alex03 Цитата(mse @ Nov 6 2006, 16:10) Нискажите... Nov 7 2006, 04:21 gormih Цитата(KA_ru @ Nov 6 2006, 14:00) хотел б... Nov 6 2006, 11:11  VslavX Цитата(gormih @ Nov 6 2006, 13:11) 1) Ник... Nov 6 2006, 13:35   Stanislav Цитата(VslavX @ Nov 6 2006, 19:38) Одно д... Nov 7 2006, 11:26    msn ЦитатаПростите, а какой ADSP и какой конкретно С к... Nov 7 2006, 14:57     Stanislav Цитата(msn @ Nov 7 2006, 17:57) ADSP2189M... Nov 7 2006, 17:08  KA_ru Цитата(msn @ Nov 6 2006, 18:01) но времен... Nov 7 2006, 10:23   msn Цитата(KA_ru @ Nov 7 2006, 12:23) Цитата(... Nov 7 2006, 23:58 Edmundo Цитата(DASM @ Nov 6 2006, 16:17) mse не с... Nov 6 2006, 14:48 mse Цитата(DASM @ Nov 6 2006, 16:17) mse не с... Nov 7 2006, 06:37 aaarrr Цитата(msn @ Nov 8 2006, 02:58) P.S. Где ... Nov 8 2006, 14:53 KA_ru у нас вон проблема с С++ на С перейти.
программист... Nov 8 2006, 17:27 IgorKossak Цитата(KA_ru @ Nov 8 2006, 19:27) у нас в... Nov 9 2006, 07:39 KA_ru Цитата(KA_ru @ Nov 8 2006, 21:27) у нас в... Nov 9 2006, 11:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|