реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> ASM или C?
adnega
сообщение May 14 2007, 03:32
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Всем привет. Решил изучать arm (lpc21xx), но не могу определиться: то ли на C писать, то ли на asm. Все примеры приводятся на C. Есть смысл отказываться?
Go to the top of the page
 
+Quote Post
DRUID3
сообщение May 14 2007, 03:41
Сообщение #2


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Смотря какие цели ставятся...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
adnega
сообщение May 14 2007, 03:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



По целям мне подходит asm. Боюсь собеседников потерять...
Go to the top of the page
 
+Quote Post
misyachniy
сообщение May 14 2007, 04:02
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Цитата(adnega @ May 14 2007, 06:58) *
По целям мне подходит asm. Боюсь собеседников потерять...

У IAR я не нашел документа типа "Mixing C and ASM" для ARM.
Рекомендуют писать на С, выводить листинк ASM и по его образу и подобию переписиывать функции требующие повышенного быстродействия.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение May 14 2007, 04:04
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(adnega @ May 14 2007, 07:58) *
По целям мне подходит asm. Боюсь собеседников потерять...


Этот вопрос уж не знаю сколько раз повсюду в inet'e и в литературе обсуждался. Есть смысл писать на asm'e только критичные по скорости функции, или те, которые завязаны на обращение к специфическим узлам процессора или его периферии. Все остальное - потеря времени разработчика.
Go to the top of the page
 
+Quote Post
scifi
сообщение May 14 2007, 04:10
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(sergeeff @ May 14 2007, 08:04) *
Этот вопрос уж не знаю сколько раз повсюду в inet'e и в литературе обсуждался. Есть смысл писать на asm'e только критичные по скорости функции, или те, которые завязаны на обращение к специфическим узлам процессора или его периферии. Все остальное - потеря времени разработчика.

Поддерживаю.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 14 2007, 04:31
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(misyachniy @ May 14 2007, 07:02) *
У IAR я не нашел документа типа "Mixing C and ASM" для ARM.

Ну во-первых про mixing поминаение есть, а во-вторых Advanced RISC Machines Ltd ARM/Thumb Procedure Call Standard. Сие есть официальный документ. Лежит на армовском сайте.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
adnega
сообщение May 14 2007, 04:54
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Очевидно. За этим языки высокого уровня и создавались. Почему в моем случае можно сделать исключение, потому что я программирую для задач реального времени. Компилятор хуже справляется с оптимизацией по быстродействию/размеру кода, чем я. Я хочу создать asm библиотеку нужных мне функций, и меня интересует, почему все иллюстрируется на C (хотя мне понятней asm)? Пожалуй многое зависит от компилятора...
АРМ я начал изучать несколько дней назад. Мощная вещь - на asm таких "финтов" можно наделать...
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 14 2007, 05:06
Сообщение #9


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Вообще-то линейный код компилятор делает почти идеально. Я сам спец по асму и фанат быстродействия, но не имею претензий к компилятору ИАР 4.20. Имеет смысл писать на асме только очень критические циклы. Которые можно легко вставить в сишный файл. А в остальном как уже писали - напрасная трата времени.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 14 2007, 05:09
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(adnega @ May 14 2007, 07:54) *
Почему в моем случае можно сделать исключение, потому что я программирую для задач реального времени.

Вы не первый smile.gif
Цитата
Компилятор хуже справляется с оптимизацией по быстродействию/размеру кода, чем я.

А это уже не факт. Пока Вы соревнуетесь в простейших задачах о несколько десятков команд, у Вас есть все шансы обогнать компилятор потратив при этом некоторое время. Но, на больших сложных кусках шансы, что компилятор сделает Вас становятся очень высокими. По любому аккуратно и четко выраженная выраженная на С мысль очень хорошо понимается компиляторами и накладные расходы едва-ли превышают десяток процентов против кропотливой ручной работы. Посему лучше направьте усилия на освоение, понимание и владение "C". Ну а на ARM-ASM уж самые узкие места расшивать можно - по полсотни команд, не более.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sd1074
сообщение May 14 2007, 05:27
Сообщение #11


Участник
*

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



Извините за "не в тему", но грустно за ассемблер sad.gif Он уже и для контроллеров не очень и нужен, а уж для ПК и подавно...


--------------------
Ignorance, arrogance keep us from being ourselves so we just follow our leaders. Why? © Stratovarius
Go to the top of the page
 
+Quote Post
DRUID3
сообщение May 14 2007, 05:43
Сообщение #12


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(sd1074 @ May 14 2007, 08:27) *
Извините за "не в тему", но грустно за ассемблер sad.gif Он уже и для контроллеров не очень и нужен, а уж для ПК и подавно...

Он нужен для "писальщиков" компиляторов, или людей решивших вжиться в архитектуру кристалла на котором они работают. Лично мои задачи ужасно далеки от супер оптимизации, а личные амбиции вообще лежат в другой области, и с asm я практически не работаю... Думаю похожая ситуация у многих…


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
bus16
сообщение May 14 2007, 06:06
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 10-01-07
Пользователь №: 24 270



В принципе и сам ARM разрабатывался для удобства программирования на языках высокого уровня.
Go to the top of the page
 
+Quote Post
blackbit
сообщение May 14 2007, 06:12
Сообщение #14


Частый гость
**

Группа: Новичок
Сообщений: 100
Регистрация: 5-03-07
Пользователь №: 25 892



Пробовал под него целиком на ASM. Божественно, но не окупается.
Go to the top of the page
 
+Quote Post
iit
сообщение May 14 2007, 06:13
Сообщение #15


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 8-11-04
Из: Томск
Пользователь №: 1 070



Цитата(adnega @ May 14 2007, 07:54) *
Очевидно. За этим языки высокого уровня и создавались. Почему в моем случае можно сделать исключение, потому что я программирую для задач реального времени. Компилятор хуже справляется с оптимизацией по быстродействию/размеру кода, чем я. Я хочу создать asm библиотеку нужных мне функций, и меня интересует, почему все иллюстрируется на C (хотя мне понятней asm)? Пожалуй многое зависит от компилятора...
АРМ я начал изучать несколько дней назад. Мощная вещь - на asm таких "финтов" можно наделать...


Не помню откуда: "Вам шашечки или ехать?"

Так вот, если вам "шашечки", то занимайтесь асмом. Изучите мат. часть в совершенстве, мозги потренируете, да и вообще, программописательство на асме дает глубокое понимание архитектуры и процессов происходящих на низком уровне.

А если вам "ехать" да еще и побыстрее - С, С и только С. Ну иногда С++ можно smile.gif Сам много лет писал на асме, с трудом ЗАСТАВИЛ себя пересесть за С - теперь за уши не отташишь. И забейте на то что код получается не оптимальным, зато других преимуществ вагон. Если освоите С, сами все поймете.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 14 2007, 06:24
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(iit @ May 14 2007, 09:13) *
Изучите мат. часть в совершенстве, мозги потренируете, да и вообще, программописательство на асме дает глубокое понимание архитектуры и процессов происходящих на низком уровне.

Нормальное (а не компиляция массы мутных исходников из 'интернету' и шитье их белыми нитками ) писание на "C" требует и мозгов, и их тренировки, и понимания... smile.gif Причем на самом деле большего smile.gif,
ибо задачи неизбежно начинают возникать и покоряться все более сложные!


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
adnega
сообщение May 14 2007, 06:36
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Всем спасибо за ответы/советы. Что ж возьмусь за изучение C... Изучать лучше на примерах или есть учебник какой? Дело в том, что опыт C++ есть громадный, меня волнует специфика C под АРМ, чтобы сразу начать писать "в духе" АРМ.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 14 2007, 06:47
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(adnega @ May 14 2007, 09:36) *
Дело в том, что опыт C++ есть громадный

Тогда проблемы равны 0.
Цитата
..... меня волнует специфика C под АРМ, чтобы сразу начать писать "в духе" АРМ.

Ее почти нет. Разве только строгая 32bit битность (в отличие от, например, x86) сказывается на оптимальности при работе c, например, пакованными структурами. Впрочем это и по ASM видно smile.gif
На первом этапе можете не зморачиваться совсем, ну а дальше почувствуете, если захотите.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 21:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01539 секунд с 7
ELECTRONIX ©2004-2016