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

 
 
> ассемблер для atmel, переносимость программ, Я beginner, так что сильно не пинайте:)
hxdev
сообщение Mar 5 2005, 23:02
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 2-03-05
Пользователь №: 3 024



Я начинающий для однокристалок, но "испорчен" CISC-архитектурой и программированием на ассемблерах(masm32,tasm,fasm,nasm) под windows для 0x86.
Я думаю понятно, что microsoft не ахти как поощеряет это дело,
не было ни инклюдников с константами, ни прототипов api-функций,
и все было против ассемблерщиков под windows, еще лет 5 назад, сказав,
что ты программируешь на асемблере под windows тебя обозвали бы гадким астматиком, и атавизмом программирования. Но сейчас ситуация изменилась -
есть все, что надо - и инклюдники и IDE( их примерно десяток, самое яркое это конечно RADASM (http://radasm.visualassembler.com/) - сишные программисты синеют от злостиsmile.gif) , и примеров море и написана куча макросов, посмотрите как цветут и пахнут
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.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
aal
сообщение Mar 6 2005, 05:43
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 20-10-04
Из: Новосибирская обл, п.Краснообск.
Пользователь №: 916



>Вопрос в том, можно ли успешно обходиться
> ассемблером для средних и крупных проектов ?

Для средних может и получится...

>Напрашивается вывод, что для крупных и средних проектов
>использовать сишные компиляторы, а для мелких можно и асм?

Да. (до 1-2к кода).

>Но в стандартном компиляторе от avr - нет даже директив
>типа db, $, нет директив определения процедур.

Для AVR С есть IAR и ImageCraft. И в асм файле, помоему, есть...

> А где же вечные ценности
> - размер кода, оптимизация по скорости и другое?

В одном проекте создается файл с функцией на ассемблере(правила на сайте atmel). В С файле объявляете эту функцию внешней.

>о их достоинствах и недостатках.

IAR - Наиболее распространен, много информации (и по глюкам тоже). На уровне 2000г. был оптимальней и удобней ImageCraft (ИМХО).

ImageCraft - Чуть шире гамма поддерживаемых кристалов (от атмела).


--------------------
_____________________________________
Пароли неприемлемы, легко взламываются терморектальным криптоанализатором.
Go to the top of the page
 
+Quote Post
vet
сообщение Mar 6 2005, 08:40
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



>Но в стандартном компиляторе от avr - нет даже директив
>типа db, $, нет директив определения процедур.

Есть в стандартном ассемблере и .DB, и $, и макросы. Почитайте хелп, поставляемый с AVR Studio.

//вот кусок кода для проверки )
.cseg
rjmp $

.dseg
.db 0x05, "12345"


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 7 2005, 17:42
Сообщение #4


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(hxdev @ Mar 6 2005, 02:02)
Расскажите о существующих компиляторах c# и асм, о их достоинствах и недостатках.
Посоветуйте опытные ветераны-однокристальщики, схемотехники.
*

На этом и соседних форумах информации, по моему, более чем достаточно.
Надо просто начать (без предвзятости).

PS: под c# Вы именно си-шарп имели в виду или C как таковой (включая C++/EC++)?
Go to the top of the page
 
+Quote Post
PraNkiSh
сообщение Mar 8 2005, 12:51
Сообщение #5


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

Группа: Свой
Сообщений: 120
Регистрация: 25-02-05
Из: Москва
Пользователь №: 2 889



ябы сказал что в вечные ценности теперь переходит время затраченное на проект и вывод его на рынок.
какой смысл в крутой оптимизации если ты сделал продукт на полгода позже конкурентов, и пусть он получился на 2-5% дешевле по себестоимости.
да, некоторое время назад был уверен и со всеми спорил, убеждая что под микроконтроллеры надо писать исключительно на асме !
сейчас пишу на си wink.gif
Go to the top of the page
 
+Quote Post
ShiphT
сообщение Mar 9 2005, 12:54
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 7-12-04
Пользователь №: 1 383



Присоединяюсь к PraNkiSh.
Сейчас главное - время выхода продукта. Редко попадаются случаи когда нужно писать на асме, но это только из-за того, что к выбранному в проект кристалу и необходимому набору функций устройства иначе не подступиться. Как пример - есть у меня девайс у которого в 1 к флеша (msp430f1101) сидит вместе с основной функциональностью декодер Рида-Соломона. Делал на асме, потому что а) мало памяти б)нехватка скорости. в) не поставить более мощный - цена устройства 5 баксов. г)устройство батареечно на 10 лет от 1го комплекта.
А вообще, если человек неплохо пишет на асме и С, то выигрыш в скорости и объеме асмовой проги составляет 10-20%. А вот скорость разработки - значительно разнится. Поэтому мало коммерческого смысла писать все проекты на ассемблере.
Go to the top of the page
 
+Quote Post
-Tумблер-
сообщение Mar 10 2005, 09:30
Сообщение #7


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

Группа: Свой
Сообщений: 146
Регистрация: 4-11-04
Из: Московская область
Пользователь №: 1 040



Цитата(hxdev @ Mar 6 2005, 02:02)
Вопрос в том, можно ли успешно обходиться ассемблером для средних и крупных проектов ?


Пишите как Вам нравицца - и у Вас будет отличное пищеварение !
biggrin.gif


--------------------

- ЗАМЕНЯТЬ ДЕТАЛИ НА ХОДУ ВОСПРЕЩАЕТСЯ !!! -
Go to the top of the page
 
+Quote Post
Miron
сообщение Mar 11 2005, 09:01
Сообщение #8


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

Группа: Validating
Сообщений: 149
Регистрация: 11-02-05
Из: Рязань
Пользователь №: 2 574



Цитата(PraNkiSh @ Mar 8 2005, 15:51)
ябы сказал что в вечные ценности теперь переходит время затраченное на проект и вывод его на рынок.
какой смысл в крутой оптимизации если ты сделал продукт на полгода позже конкурентов, и пусть он получился на 2-5% дешевле по себестоимости.
да, некоторое время назад был уверен и со всеми спорил, убеждая что под микроконтроллеры надо писать исключительно на асме !
сейчас пишу на си  wink.gif
*


Ну все на си бывает и не напишеш особенно если надо сделать быстрые кусочки для работы с железом. Я пишу на си но асм бросать не собираюсь
в некоторых слючаях вызов процедурки на асм очень очень выручает.
Go to the top of the page
 
+Quote Post

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

 


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


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