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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Assembler 2 и Си для AVR, Программы
_Bill
сообщение Jul 29 2006, 06:34
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(Andrey_31 @ Jul 29 2006, 01:54) *
Господа ,не надо сравнивать белое и чёрное!!!!!!! На Assemblere код программы в три раза короче
и в два раза быстрее выполняется ,чем на Си !!!!!

Вопрос был в том, что AVRстудия переходит с Assembler 1 на Assembler2 ,
а примеров написания программ на Assembler2 я не находил !!!
Надеюсь будут ответы по существу ,а не о достоинстве Си ......

Я бы не стал так категорично утверждать. Номрмально написанная программа на Си будет всего на 10% от силы больше, чем на ассемблере. Опытный программист, вообще, может написать на Си программу более эффективную, чем неопытный ту же программу на ассемблере. Все зависит от умения владеть инструментами (МК, языками).
Если же Вы хотите использовать непременно ассемблер, то рекомендую взять ассемблер от IAR. Он мощнее атмеловского будет. Могу посоветовать взглянуть еше на этот опус: "Си без Си".
Я думаю, Вы увидите, что Си это совсем не страшно.
Go to the top of the page
 
+Quote Post
Andrey_31
сообщение Jul 29 2006, 15:31
Сообщение #17





Группа: Новичок
Сообщений: 14
Регистрация: 3-01-06
Пользователь №: 12 807



"Си без Си".

Спасибо, интересная статейка !!!!!!!!!!!!!!!!!

----------------------------------------------------------------------------------------
Go to the top of the page
 
+Quote Post
Andrey_31
сообщение Jul 29 2006, 15:48
Сообщение #18





Группа: Новичок
Сообщений: 14
Регистрация: 3-01-06
Пользователь №: 12 807



А что вы имели ввиду говоря о примерах написания программ на Assembler2? Там добавили множество полезных фишек (и новых директив) по использованию препроцессора, который теперь "C-style preprocessor"(см. help), потому и сравнивать стали с С smile.gif . Использовать эти новые вещи или не использовать - дело вкуса, написание программы собственно на Assembler не изменилось практически, он в С от этого не превратился, if-ы это для препроцессора, а не для ассемблера.
------------------------------------------------------------------------
В конце следующего отрывка , из AVR Assembler 2 - Known Issues ,отрывок программы с использованием .if .endif !!!
Или я чегото не понял, программа вроде для ассемблера ??????

И как старые библиотеки программ на ассемблере 1 стыковать с программами на ассемблере 2
,их можно использовать без изменений (ну кроме замены имён регистров для нового контроллера ,размера памяти ) ?
------------------------------------------------------------------------------
AVR Assembler 2 - Known Issues
See also: Common Assembler Project Issues.

The following AVRASM2 bugs/issues are known at the time of release. Please note that the AVRASM1 known issues do not apply to AVRASM2. and vice versa.

Missing newline at end of file
Comments in macro calls
Increment/decrement operators
Forward references in conditionals
Error messages
Preprocessor issues

Missing newline at end of file
AVRASM2 has some issues if the last line in a source file is missing a newline: Error messages may refer to wrong filename/line number if the error is in the last line of a included files, and in some cases syntax errors may result. Beware that the AVR Studio editor will not append a missing newline at the end of a source file automatically.

Increment/decrement operators
Increment/decrement operators (++/--) are recognized by the assembler and may cause surprises, e.g. symbol--1 will cause a syntax error, write symbol - -1 if that is what is intended. This behaviour is consistent with the C preprocessor. The ++/-- operators are not useful in the current assembler, but are reserved for future use.

Forward references in conditionals
Using a forward reference in an assembler conditional may cause surprises, and in some cases is not allowed. Example:

.org LARGEBOOTSTART
; the following sets up RAMPZ:Z to point to a FLASH data object, typically
; for use with ELPM.
ldi ZL, low (cmdtable * 2)
ldi ZH, high (cmdtable * 2)
.if ((cmdtable * 2) > 65535)
ldi r16, 1
sts RAMPZ, r16
.endif
; more code follows here
cmdtable: .db "foo", 0x0
Go to the top of the page
 
+Quote Post

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

 


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


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