Bill-у и другим, то интересовался сравнением кода на АСМ и кода на С(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
L.A. 02 июля 2003 г. 10:03
|
|
|
|
Я написал несложную прогу для вывода синуса из таблицы на ШИМ. Проц PIC16F628. Написано 2 варианта на С и на АСМ. Для компиляции С применялся Hi-Tech PICC v 8.01, для асма MPASM.
Результаты ( команды затраченные на хранение таблицы 248 выборок синуса для наглядности не учитываем, так как они в обеих прогах занимают одинаковое место )
Ассемблер - 67 команд ( из которых 27 - инициализация, установка портов и т.п.)
С - 202 команды. Оптимизация включена, уровень 8. Кол-во команд на инициализацию не считал - лень было ковыряться в листинге.
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Во удивил! :-) — Tiny12 (02.07.2003 14:16, 2499 байт)
- Откомпилировал. Получилось что на С программа занимает значительно меньше, чем заявлено. — Дисбалансер (02.07.2003 13:16, 4722 байт)
- Ответ: Немного Off, но применительно к данной дискуссии. — Bill (02.07.2003 11:50, 264 байт)
- Ответ: Конечно было бы интересно взглянуть на исходной текст. Но как я понял из ответов — Bill (02.07.2003 10:36, 426 байт)
- Исходник на С выложен ниже, а исходник на асме здесь , только несколько покривившийся. — L.A. (02.07.2003 10:47, 17682 байт)
- я более про pic16 говорил. В 18 как я понял есть попытка оживить мертвеца и присабачить к сям. — DASM (02.07.2003 10:39, пустое)
- Да, 18-е ПИКи вроде должны лучше подходить. В них нет разделения памяти на банки, а банки и затрудняют работу компилера. — L.A. (02.07.2003 10:51, пустое)
- Ответ: Конечно PIC18 это далеко не PIC16, но к Си он ненамного приблизился. Попробуй на нем написать рекурсивную функцию. — Bill (02.07.2003 10:50, 230 байт)
- И часто Вы пишите рекурсивные алгоритмы для микроконтроллеров? — Dir (02.07.2003 23:41, 185 байт)
- На прошлой странице было сообщение о совершенно аналогичной корявости АВР по отношению к С. Так что мечта DASMa не скоро сбудется. — L.A. (02.07.2003 10:54, пустое)
- Ответ: Увы, идеала не существут. Но мне кажется 16-разрядные контроллеры — Bill (02.07.2003 11:02, 158 байт)
- ну корявость АВР менее выражена, для 8-битника они сделали почти все что могли. Будем ждать хотя бы 32 битников даже в простых приложениях — DASM (02.07.2003 10:59, пустое)
- Как это "менее выражена"? Точно такое же трехкратное распухание кода при переводе с асма на С . Где здесь меньшая выраженность - не пойму. Если уж что-то и заточено под С , так это MSP430. — L.A. (02.07.2003 11:01, пустое)
- Я думаю, что Вы очень хорошо пишите на ASMе и очень плохо на С, у меня ситуация обратная, поэтому код на С как минимум не хуже, чем на ASMe. — Sgrig (02.07.2003 12:26, пустое)
- Ответ: А вот здесь я не соглашусь. Во-первых это зависит от программиста. — Bill (02.07.2003 12:16, 575 байт)
- Хм-м-м, а что, у 32р МК на С и АСМ соотношение будет другое? — mse (02.07.2003 11:44, пустое)
- Список можно продолжить M16C, F2MC (8 и 16 бит) ..., 32-рязрядные наверное все можно к Си-адаптированным причислить. — Sergey Pinigin (02.07.2003 11:35, пустое)
- и что в нем так заточено ? и что конкретно коряво в АВР ? — DASM (02.07.2003 11:10, пустое)
- и вообще, ощущение такое, что это ревность какая-то. Типа машина никогда не сможет думать, только человек. Посмотрю я на вас, когда степень оптимизации компиляторов превзойдет человеческие возможности — DASM (02.07.2003 10:17, пустое)
- Исходник на С посмотреть бы для прогона на другом компиляторе. — Brend (02.07.2003 10:12, пустое)
- нет, ну вы когда-нибудь поймете, что PIC под С вообще не заточен ? Даже не близко. И что, вам жалко этих вшивых лишних 135 команд ? — DASM (02.07.2003 10:05, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru