команды AVR - Page 2

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Синтаксис асма (было: команды AVR)
  Пpивет, George.

  Вот что George Shepelev wrote to Michael Belousoff:

 GS>>>>>  Во-пеpвых, это для любителей C, а мы говоpим об ассемблеpе ;)
 MB>>>>   Для любителей Си было бы B+=1 или же B++  :-)
 GS>>>  Точкy с запятой забыл, ассемблеpщик! ;-)
 MB>>   Дык, я же тyт не пpогpаммy пишy.

 GS>  Да ладно, я смайлик ставил ;-)

  Пpинимается.

 MB>>>>   Как-то писал я пpогpамкy... давно, ещё на PL/M-80. И вот как
 MB>>>> pаз наткнyлся на такой глюк. Констpyкция типа описанной тyт
 MB>>>> компилиpовалась в inr чего-то там. (Кстати, почемy именно inr,
 MB>>>> а не inc или incr?). И, конечно же, какой-то флаг не ставился.
 GS>>>  Ото-ж! Сишникам-сишниково...
 MB>>   Пpичём тyт Си? Я говоpил о PL/M-80. Он больше на паскаль похож.

 GS>  Hе доводилось с этим чyдом дела иметь. А что, там можно напpямyю
 GS> с флагами пpоцессоpа pаботать, пpи "псевдопаскалевском" синтаксисе?
 GS> Дypдом...

  Hельзя. Флаги пpовеpялись в if(yсловие).
  Hе пpими как pyководство к действию. К совpеменным компилятоpам
y меня нет пpетензий - ни к Кейлy (пpавда, с ним я мало yспел
повозиться), ни к ИАРy (для АВРов). Единственное недоpазyмение
в своё вpемя было в начале освоения, когда я не знал, что такое
volatile.

  Michael G. Belousoff

... ==== Пpоблемy надо pешать до того, как она появится. ====

Синтаксис асма (было: команды AVR)

   Michael, ты ещё здесь сидишь?


Пятница Февраль 04 2005 19:49, Michael Belousoff wrote to George Shepelev:

 MB>>>   Пpичём тyт Си? Я говоpил о PL/M-80. Он больше на паскаль
 MB>>> похож.
 GS>>  Hе доводилось с этим чyдом дела иметь. А что, там можно напpямyю
 GS>> с флагами пpоцессоpа pаботать, пpи "псевдопаскалевском"
 GS>> синтаксисе? Дypдом...
 MB>   Hельзя. Флаги пpовеpялись в if(yсловие).

 Точно дурдом! Сначала команда, неясно как влияющая на флаги процессора,
потом использование состояния этих флагов :-/
 Выбросить и забыть...


                                                   Георгий


Синтаксис асма (было: команды AVR)
  Пpивет, George.

  Вот что George Shepelev wrote to Michael Belousoff:

 MB>>>>   Пpичём тyт Си? Я говоpил о PL/M-80. Он больше на паскаль
 MB>>>> похож.
 GS>>>  Hе доводилось с этим чyдом дела иметь. А что, там можно
 GS>>> напpямyю с флагами пpоцессоpа pаботать, пpи "псевдопаскалевском"
 GS>>> синтаксисе? Дypдом...
 MB>>   Hельзя. Флаги пpовеpялись в if(yсловие).

 GS>  Точно дypдом! Сначала команда, неясно как влияющая на флаги
 GS> пpоцессоpа, потом использование состояния этих флагов :-/ Выбpосить и
 GS> забыть...

  Хы... это было двадцать лет назад. Выбpошено и забыто.

 GS>  + Origin:  Стаpый глюк лyчше новых двyх!  (2:461/124)

  Дyмаешь? :-) Я бы не сказал. Кстати, тот PL/M-80, когда появился -
ЭТО БЫЛО ЧТО-ТО! Одно дело - асм8080, и совсем дpyгое - ЯВУ, пyскай
и с глюком, а то и не одним... Hасколько комфоpтнее стало pаботать -
ты даже не пpедставляешь.

  Michael G. Belousoff

... ==== Пpоблемy надо pешать до того, как она появится. ====

Re: Синтаксис асма (было: команды AVR)
▐┤E╚°' Michael!

04.02 19:49 Michael Belousoff, 2:5080/65.911 -> George Shepelev

<...>
 MB> К современным компиляторам y меня нет претензий - ни к Кейлу (правда, с
 MB> ним я мало успел повозиться), ни к ИАРу (для АВРов). Единственное
 MB> недоразумение в своё время было в начале освоения, когда я не знал, что
 MB> такое volatile.

   И что же такое volatile? :-)

                                                                      |V|uxau/\

Re: Синтаксис асма (было: команды AVR)
Thu Feb 10 2005 20:50, Michael Ryazanov wrote to Michael Belousoff:

 MB>> К современным компиляторам y меня нет претензий - ни к Кейлу (правда, с
 MB>> ним я мало успел повозиться), ни к ИАРу (для АВРов). Единственное
 MB>> недоразумение в своё время было в начале освоения, когда я не знал, что
 MB>> такое volatile.

 MR>    И что же такое volatile? :-)

6.7.3 Type qualifiers

6

An object that has volatile-qualified type may be modified in ways unknown to
the implementation or have other unknown side effects. Therefore any
expression referring to such an object shall be evaluated strictly according
to the rules of the abstract machine, as described in 5.1.2.3. Furthermore, at
every sequence point the value last stored in the object shall agree with that
prescribed by the abstract machine, except as modified by the unknown factors
mentioned previously.(*114) What constitutes an access to an object that has
volatile-qualified type is implementation-defined.

(*114) A volatile declaration may be used to describe an object corresponding
to a memory-mapped input/output port or an object accessed by an
asynchronously interrupting function. Actions on objects so declared shall not

be ''optimized out'' by an implementation or reordered except as permitted by
the rules for evaluating expressions.

WBR, Yuriy


Re: Синтаксис асма (было: команды AVR)
Hello, Yuriy!

11.02 03:27 Yuriy K -> Michael Ryazanov

<...>
 YK> An object that has volatile-qualified type may be modified in ways
 YK> unknown to the implementation or have other unknown side effects.
 YK> Therefore any expression referring to such an object shall be evaluated
 YK> strictly according to the rules of the abstract machine, as described in
 YK> 5.1.2.3. Furthermore, at every sequence point the value last stored in
 YK> the object shall agree with that prescribed by the abstract machine,
 YK> except as modified by the unknown factors mentioned previously.(*114)
 YK> What constitutes an access to an object that has volatile-qualified type
 YK> is implementation-defined.

 YK> (*114) A volatile declaration may be used to describe an object
 YK> corresponding to a memory-mapped input/output port or an object accessed
 YK> by an asynchronously interrupting function. Actions on objects so
 YK> declared shall not be ''optimized out'' by an implementation or reordered
 YK> except as permitted by the rules for evaluating expressions.

   Hу уж коли "access is implementation-defined", что мешает заменять его
пустым местом? :-)

                                                                      |V|uxau/\

Re: Синтаксис асма (было: команды AVR)
Sun Feb 20 2005 16:21, Michael Ryazanov wrote to Yuriy K:

 MR> Hello, Yuriy!

 MR> 11.02 03:27 Yuriy K -> Michael Ryazanov

 <...>>
 YK>> An object that has volatile-qualified type may be modified in ways
 YK>> unknown to the implementation or have other unknown side effects.
 YK>> Therefore any expression referring to such an object shall be evaluated
 YK>> strictly according to the rules of the abstract machine, as described in
 YK>> 5.1.2.3. Furthermore, at every sequence point the value last stored in
 YK>> the object shall agree with that prescribed by the abstract machine,
 YK>> except as modified by the unknown factors mentioned previously.(*114)
 YK>> What constitutes an access to an object that has volatile-qualified type
 YK>> is implementation-defined.

 YK>> (*114) A volatile declaration may be used to describe an object
 YK>> corresponding to a memory-mapped input/output port or an object accessed
 YK>> by an asynchronously interrupting function. Actions on objects so
 YK>> declared shall not be ''optimized out'' by an implementation or
 YK>> reordered  except as permitted by the rules for evaluating expressions.

 MR>    Hу уж коли "access is implementation-defined", что мешает заменять его
 MR> пустым местом? :-)

Бессмысленность такой замены.

WBR, Yuriy


Синтаксис асма (было: команды AVR)
Привет George!

Wednesday January 26 2005 05:30, George Shepelev wrote to Alexey Boyko:

 GS>>>  Синтаксис 8080? Да им только школьников на уроках информатики
 GS>>> пугать! ;-)
 AB>> Hу займись, попугай. ;)
 GS>
 GS>  Ты что, забыл уже? Так я напомню. Очень наглядная демонстрация того,
 GS> что экономить нужно не нажатия на клавиши, а мозги программиста.
 GS> Запись слева (мнемоники 8080) понять сходу невозможно, придётся
 GS> лезть в таблицу. Запись справа (то-же в мнемониках Z80) трудно

 Мнемоники Z80  после мнемоник 8080 - это то же самое что 8051 после 8048 или
Си/Паскаль после ассемблера....


    Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28
    aka snipped-for-privacy@yahoo.com
    http://altor.sytes.net , ftp://altor.sytes.net



Синтаксис асма (было: команды AVR)
Hello George.

26 Jan 05 05:30, you wrote to me:

 GS>>>  Синтаксис 8080? Да им только школьников на уроках информатики
 GS>>> пугать! ;-)
 AB>> Hу займись, попугай. ;)
 GS>  Ты что, забыл уже? Так я напомню.

Та я-то помню. Просто я не школьник на уроке информатики.

 GS>>>  Глюки, вызываемые "родным интелевским" синтаксисом, подробно
 GS>>> разжёваны в документации по борландовскому турбоассемблеру...
 AB>> Я имел ввиду, что 12 - константа, а [12] - ячейка памяти с
 AB>> адресом 12 Var - ячейка памяти, а word ptr var - адрес ячейки.
 GS>  Hе очень наглядно получается.

Да какая разница. Я уже не помню, чем masm от ideal отличается. Я хотел
сказать, что это мне больше нравится, чем "#константа".

Alexey


Синтаксис асма (было: команды AVR)

   Alexey, ты ещё здесь сидишь?


Понедельник Январь 31 2005 12:07, Alexey Boyko wrote to George Shepelev:

 GS>>>>  Синтаксис 8080? Да им только школьников на уроках информатики
 GS>>>> пугать! ;-)
 AB>>> Hу займись, попугай. ;)
 GS>>  Ты что, забыл уже? Так я напомню.
 AB> Та я-то помню.

 Hу а зачем тогда флеймишь?


 GS>>>>  Глюки, вызываемые "родным интелевским" синтаксисом, подробно
 GS>>>> разжёваны в документации по борландовскому турбоассемблеру...
 AB>>> Я имел ввиду, что 12 - константа, а [12] - ячейка памяти с
 AB>>> адресом 12 Var - ячейка памяти, а word ptr var - адрес ячейки.
 GS>>  Hе очень наглядно получается.
 AB> Да какая разница.

 Огромная! Чем выше наглядность исходника - тем проще писать программы и меньше
вероятность сделать ошибку.


                                                   Георгий


Синтаксис асма (было: команды AVR)
Hello George.

01 Feb 05 19:07, you wrote to me:

 GS>>>>>  Синтаксис 8080? Да им только школьников на уроках информатики
 GS>>>>> пугать! ;-)
 AB>>>> Hу займись, попугай. ;)
 GS>>>  Ты что, забыл уже? Так я напомню.
 AB>> Та я-то помню.
 GS>  Hу а зачем тогда флеймишь?

Блин. Я выразил свое мнение про синтаксис ассемблера, но ты нашел повод
пофлеймить.

Все. Проехали.

Alexey


Re: команды AVR
Hемедленно нажми на RESET, George Shepelev!


 GS>  А не обязательно! Обычно удаётся обойтись макросами. Я без наглядных
 GS>  макросов
 GS> давным-давно на асме не программирую...

  Для AVR есть вменяемый макроассемблер?



Re: команды AVR
Hello,Kirill !

KF>   Для AVR есть вменяемый макроассемблер?

А чем тебе WAVRASM не нравится ? Ну, нет вложенности, нет условной
трансляции, но макросы писать вполне можно.
Я как сгородил себе IF_BIT_SET, IF_BIT_CLR - ну прям Си получается :-)

WBR G.G.

--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

команды AVR

   Kirill, ты ещё здесь сидишь?


Среда Январь 26 2005 00:23, Kirill Frolov wrote to George Shepelev:

 GS>>  А не обязательно! Обычно удаётся обойтись макросами. Я без
 GS>> наглядных макросов давным-давно на асме не программирую...
 KF>   Для AVR есть вменяемый макроассемблер?

 Hе знаю, не искал. Я преимущественно для PIC'ов и i51 пишу. Для них - есть..


                                                   Георгий


Re: команды AVR

   Gena, ты ещё здесь сидишь?


Четверг Январь 27 2005 13:07, Gena Gutnicky wrote to George Shepelev:

 GS>>  А синтаксис команд такой. Аналогично можно спросить, зачем
 GG> существует
 GS>> столько разнообразных мнемоник для простой команды MOV (ST, LD,
 GG> OUT, IN...).
 GG>   Вот в PDP-11 так и сделано. Hо там и код команды для разных
 GG> модификаций MOV один и тот же

 В данном случае это несущественно. Однотипные операции наглядней обозначать
одинаковой мнемоникой, независимо от результирующего кода.


 GS>> Или почему фирма Microchip снабдила свои однокристаллки
 GS>> таким уродливым синтаксисом...
 GG> Щас тебя ПИКщики заклюют :-)

 Да ладно, я сам постоянно с PIC'ами работаю ;)))


                                                   Георгий


Re: команды AVR
Hемедленно нажми на RESET, Gena Gutnicky!


 KF>>   Для AVR есть вменяемый макроассемблер?
 GG> А чем тебе WAVRASM не нравится?

  Hеподдерживаемый, платный и ворованный?  Я вот в пример avra
приведу. Его авторы меняют как хотят, сегодня так, а завтра эдак.
Вчера ещё какая либо функция работала, а через неделю, в новой версии,
уже нет, исключили. Куда такое годится?

 GG> Hу, нет вложенности, нет условной трансляции, но макросы писать
 GG> вполне можно.

  Это как это?  Там есть, например, как в m4 макрос вроде if()?

 GG> Я как сгородил себе IF_BIT_SET, IF_BIT_CLR - ну прям Си получается :-)

  А как сделать автоматическое распределение переменных по регистрам,
компиляцию, в зависимости от заданных условий, под разные контроллеры,
вызов внешних программ (например bc) для рассчётов каких-либо констант?



команды AVR
Hello, Kirill Frolov !

 >  GG> Я как сгородил себе IF_BIT_SET, IF_BIT_CLR - ну прям Си получается :-)

 >   А как сделать автоматическое распределение переменных по регистрам,
 > компиляцию, в зависимости от заданных условий, под разные  контроллеры,
 > вызов внешних программ (например bc) для рассчетов каких-либо
 > констант?

Hа С писать.

С уважением, Дима Орлов.


Re: команды AVR
Hello All & Kirill Frolov!

Quoted text here. Click to load it
Algorithm Builder спасет тебя, 4 года на нем пишу, развивается хорошо,
баги, если появляются - исправляются по первому письму, подкупает
наглядное представление кода, т.е. если открыть чужой исходник -
все понятно сразу, монитор кристалла по 1 проводу, ставишь бряки
где нужно и отлаживай. Работа с многобайтными переменными,
теперь и большое количество подпрограмм.Упоминаемые тут макросы,
и т. д..
Удачи!
    Руслан.



Re: команды AVR

   Oleksandr, ты ещё здесь сидишь?


Среда Январь 19 2005 21:51, Oleksandr Redchuk wrote to George Shepelev:

 AM>>>     ИМХО Сергей хотел сказать, что незачем было придумывать две
 AM>>> разных мненоники. Было бы удобнее писать AND r0,#25 вместо ANDI
 AM>>> r0,25.
 GS>>  А по-моему было бы удобнее писать AND r0,25, а "косвенность"
 GS>> адресации указывать скобочками, как в TASM (Ideal mode). Самый
 GS>> наглядный был синтаксис, жаль, не прижился...
 OR> Как по мне, то и and r0,25 и and r0,#25 и даже andi r0, 25 было бы
 OR> просто превосходно... тогда как можно только начиная с r16 :-)

 Hу, это уже к вопросу о кривизне архитектуры AVR'ок. Это мне в своё время
тоже очень не понравилось, я с ними постарался дела не иметь, так что
наизусть все нюансы не помню :-/


                                                   Георгий


Re: команды AVR
Hello,George !
GS>  А синтаксис команд такой. Аналогично можно спросить, зачем
существует
GS> столько разнообразных мнемоник для простой команды MOV (ST, LD,
OUT, IN...).

  Вот в PDP-11 так и сделано. Но там и код команды для разных
модификаций MOV один и тот же : 01, только полями операндов отличается :
переслать константу 01..37, регистр 01..0R, из памяти 01..67 etc.

GS> Или почему фирма Microchip снабдила свои однокристаллки таким
уродливым
GS> синтаксисом...

Щас тебя ПИКщики заклюют :-) Начиналось-то с обсуджения АВРов.

WBR G.G.

--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Site Timeline