hxdev 0 5 марта, 2005 Опубликовано 5 марта, 2005 · Жалоба Я начинающий для однокристалок, но "испорчен" CISC-архитектурой и программированием на ассемблерах(masm32,tasm,fasm,nasm) под windows для 0x86. Я думаю понятно, что microsoft не ахти как поощеряет это дело, не было ни инклюдников с константами, ни прототипов api-функций, и все было против ассемблерщиков под windows, еще лет 5 назад, сказав, что ты программируешь на асемблере под windows тебя обозвали бы гадким астматиком, и атавизмом программирования. Но сейчас ситуация изменилась - есть все, что надо - и инклюдники и IDE( их примерно десяток, самое яркое это конечно RADASM (http://radasm.visualassembler.com/) - сишные программисты синеют от злости:)) , и примеров море и написана куча макросов, посмотрите как цветут и пахнут http://www.wasm.ru/ http://www.masm32.com/ http://www.movsd.com/ http://www.masmforum.com/ http://board.win32asmcommunity.net/ и другие. Но все-таки ассемблер это удел, не многих - вирусы - антивирусы, криптозащиты-реверсинг, и многое другое. Быстро сляпать и сдать заказчику это конечно HLL(Языки Высокого Уровня, к примеру c#) Для каждой задачи свой подход. Но вопрос не в том, что лучше или хуже для однокристалок, Вопрос в том, можно ли успешно обходиться ассемблером для средних и крупных проектов ? Глядя на 0x86-архитектуру и макроассембле masm, где к примеру можно сделать макрос return и в зависимости от операндов ( определить с помощью директив и макросов, таких как $IsImm MACRO Operand:REQ IF (OPATTR (Operand)) AND 00000100y ;; Is an immediate value EXITM <-1> ELSE EXITM <0> ENDIF ENDM ) строить оптимизированый код (если вы знаете как для данного мп), не хуже опримизатора для c#. Но в стандартном компиляторе от avr - нет даже директив типа db, $, нет директив определения процедур. Может это от отличия каждого нового девайса от другого? Напрашивается вывод, что для крупных и средних проектов использовать сишные компиляторы, а для мелких можно и асм? А где же вечные ценности - размер кода, оптимизация по скорости и другое? Расскажите о существующих компиляторах c# и асм, о их достоинствах и недостатках. Посоветуйте опытные ветераны-однокристальщики, схемотехники. :a14: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aal 0 6 марта, 2005 Опубликовано 6 марта, 2005 · Жалоба >Вопрос в том, можно ли успешно обходиться > ассемблером для средних и крупных проектов ? Для средних может и получится... >Напрашивается вывод, что для крупных и средних проектов >использовать сишные компиляторы, а для мелких можно и асм? Да. (до 1-2к кода). >Но в стандартном компиляторе от avr - нет даже директив >типа db, $, нет директив определения процедур. Для AVR С есть IAR и ImageCraft. И в асм файле, помоему, есть... > А где же вечные ценности > - размер кода, оптимизация по скорости и другое? В одном проекте создается файл с функцией на ассемблере(правила на сайте atmel). В С файле объявляете эту функцию внешней. >о их достоинствах и недостатках. IAR - Наиболее распространен, много информации (и по глюкам тоже). На уровне 2000г. был оптимальней и удобней ImageCraft (ИМХО). ImageCraft - Чуть шире гамма поддерживаемых кристалов (от атмела). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vet 0 6 марта, 2005 Опубликовано 6 марта, 2005 · Жалоба >Но в стандартном компиляторе от avr - нет даже директив >типа db, $, нет директив определения процедур. Есть в стандартном ассемблере и .DB, и $, и макросы. Почитайте хелп, поставляемый с AVR Studio. //вот кусок кода для проверки ) .cseg rjmp $ .dseg .db 0x05, "12345" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 7 марта, 2005 Опубликовано 7 марта, 2005 · Жалоба Расскажите о существующих компиляторах c# и асм, о их достоинствах и недостатках. Посоветуйте опытные ветераны-однокристальщики, схемотехники. <{POST_SNAPBACK}> На этом и соседних форумах информации, по моему, более чем достаточно. Надо просто начать (без предвзятости). PS: под c# Вы именно си-шарп имели в виду или C как таковой (включая C++/EC++)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PraNkiSh 0 8 марта, 2005 Опубликовано 8 марта, 2005 · Жалоба ябы сказал что в вечные ценности теперь переходит время затраченное на проект и вывод его на рынок. какой смысл в крутой оптимизации если ты сделал продукт на полгода позже конкурентов, и пусть он получился на 2-5% дешевле по себестоимости. да, некоторое время назад был уверен и со всеми спорил, убеждая что под микроконтроллеры надо писать исключительно на асме ! сейчас пишу на си ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ShiphT 0 9 марта, 2005 Опубликовано 9 марта, 2005 · Жалоба Присоединяюсь к PraNkiSh. Сейчас главное - время выхода продукта. Редко попадаются случаи когда нужно писать на асме, но это только из-за того, что к выбранному в проект кристалу и необходимому набору функций устройства иначе не подступиться. Как пример - есть у меня девайс у которого в 1 к флеша (msp430f1101) сидит вместе с основной функциональностью декодер Рида-Соломона. Делал на асме, потому что а) мало памяти б)нехватка скорости. в) не поставить более мощный - цена устройства 5 баксов. г)устройство батареечно на 10 лет от 1го комплекта. А вообще, если человек неплохо пишет на асме и С, то выигрыш в скорости и объеме асмовой проги составляет 10-20%. А вот скорость разработки - значительно разнится. Поэтому мало коммерческого смысла писать все проекты на ассемблере. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-Tумблер- 0 10 марта, 2005 Опубликовано 10 марта, 2005 · Жалоба Вопрос в том, можно ли успешно обходиться ассемблером для средних и крупных проектов ? Пишите как Вам нравицца - и у Вас будет отличное пищеварение ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость Miron 11 марта, 2005 Опубликовано 11 марта, 2005 · Жалоба ябы сказал что в вечные ценности теперь переходит время затраченное на проект и вывод его на рынок. какой смысл в крутой оптимизации если ты сделал продукт на полгода позже конкурентов, и пусть он получился на 2-5% дешевле по себестоимости. да, некоторое время назад был уверен и со всеми спорил, убеждая что под микроконтроллеры надо писать исключительно на асме ! сейчас пишу на си ;) <{POST_SNAPBACK}> Ну все на си бывает и не напишеш особенно если надо сделать быстрые кусочки для работы с железом. Я пишу на си но асм бросать не собираюсь в некоторых слючаях вызов процедурки на асм очень очень выручает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться