команды 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.

Reply to
Gena Gutnicky
Loading thread data ...

Hello,Kirill !

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

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

WBR G.G.

Reply to
Gena Gutnicky

Hello,Vladislav ! VB> Чтобы не тратить время и регистр на загрузку операнда при непосредственном VB> операнде. К сожалению, опкодов не хватило для, скажем, EORI.

...А также на те же ORI,ANDI etc. для регистров 0...15. Вообще, поговорил бы с нами старик Атмель, мы бы ему много чего дельного присоветовали бы ;-)

WBR G.G.

Reply to
Gena Gutnicky

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

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

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

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

Георгий

Reply to
George Shepelev

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

Четверг Январь 27 2005 06:35, Vladimir Vassilevsky wrote to George Shepelev:

VV> А еще есть синтаксис от фирмы AD, на котором все записывается так:

VV> B = B + 1;

Во-первых, это для любителей C, а мы говорим об ассемблере ;) Во-вторых, на эту команду может быть скомпилирована как команда ADD, так и команда INC, которые могут по разному влиять на флаги процессора. Оно надо, такое "счастье"?..

VV> Все замечательно, если бы не один большой недостаток: совершенно VV> неочевидно, какие команды бывают, а какие не бывают. Из-за этого VV> происходит куча compile time errors, и все равно приходится засорять VV> голову пикоманством.

Это не "пикоманство", а умение программировать на ассемблере. Хочешь писать на C - используй компилятор C, а не его имитацию...

Георгий

Reply to
George Shepelev

Hello, George Shepelev !

Жора, это и есть ассемблер...

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

Reply to
Dima Orlov

Пpивет, George.

Вот что George Shepelev wrote to Vladimir Vassilevsky:

VV>> А еще есть синтаксис от фиpмы AD, на котоpом все записывается VV>> так:

VV>> B = B + 1;

GS> Во-пеpвых, это для любителей C, а мы говоpим об ассемблеpе ;)

Для любителей Си было бы B+=1 или же B++ :-)

GS> Во-втоpых, на этy командy может быть скомпилиpована как команда ADD, GS> так и команда INC, котоpые могyт по pазномy влиять на флаги GS> пpоцессоpа. Оно надо, такое "счастье"?..

Как-то писал я пpогpамкy... давно, ещё на PL/M-80. И вот как pаз наткнyлся на такой глюк. Констpyкция типа описанной тyт компилиpовалась в inr чего-то там. (Кстати, почемy именно inr, а не inc или incr?). И, конечно же, какой-то флаг не ставился. Было выявлено внимательным вглядыванием в полyчившийся пpи компиляции ассемблеpный текст, а вылечено пеpеписыванием этого на B = 1 + B. Вот такие бывают (бывали, надеюсь) пиpожки с котятами...

Michael G. Belousoff

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

Reply to
Michael Belousoff

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'ами работаю ;)))

Георгий

Reply to
George Shepelev

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

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

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

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

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

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

Reply to
Kirill Frolov

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

Пятница Январь 28 2005 11:46, Dima Orlov wrote to George Shepelev:

Хамить прекращай.

DO> это и есть ассемблер...

Сделанный сишниками для сишников. Ага, ага ;)

Георгий

Reply to
George Shepelev

Hello, Kirill Frolov !

Hа С писать.

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

Reply to
Dima Orlov

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

Reply to
Alexey Boyko

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

Пятница Январь 28 2005 21:00, Michael Belousoff wrote to George Shepelev:

VV>>> А еще есть синтаксис от фиpмы AD, на котоpом все записывается VV>>> так: VV>>> B = B + 1; GS>> Во-пеpвых, это для любителей C, а мы говоpим об ассемблеpе ;) MB> Для любителей Си было бы B+=1 или же B++ :-)

Точку с запятой забыл, ассемблерщик! ;-)

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

Ото-ж! Сишникам-сишниково...

MB> Было выявлено внимательным вглядыванием в полyчившийся пpи компиляции MB> ассемблеpный текст, а вылечено пеpеписыванием этого на B = 1 + B. Вот MB> такие бывают (бывали, надеюсь) пиpожки с котятами...

"Дык, братушка, дык!"

Георгий

Reply to
George Shepelev

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> Да какая разница.

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

Георгий

Reply to
George Shepelev

Пpивет, George.

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

VV>>>> А еще есть синтаксис от фиpмы AD, на котоpом все записывается VV>>>> так: VV>>>> B = B + 1; GS>>> Во-пеpвых, это для любителей C, а мы говоpим об ассемблеpе ;) MB>> Для любителей Си было бы B+=1 или же B++ :-)

GS> Точкy с запятой забыл, ассемблеpщик! ;-)

Дык, я же тyт не пpогpаммy пишy. А асм (51-й) я забываю yскоpенными темпами. С тех поp, как с АВРами связался.

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

GS> Ото-ж! Сишникам-сишниково...

Пpичём тyт Си? Я говоpил о PL/M-80. Он больше на паскаль похож.

Michael G. Belousoff

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

Reply to
Michael Belousoff

Hello All & Kirill Frolov!

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

Reply to
Ruslan Polyakov

Hello George.

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

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

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

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

Alexey

Reply to
Alexey Boyko

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

Вторник Февраль 01 2005 21:55, Michael Belousoff wrote to George Shepelev:

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

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

GS>>>> Во-втоpых, на этy командy может быть скомпилиpована как GS>>>> команда ADD, так и команда INC, котоpые могyт по pазномy влиять GS>>>> на флаги пpоцессо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. Он больше на паскаль похож.

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

Георгий

Reply to
George Shepelev

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

Вторник Февраль 01 2005 22:39, Ruslan Polyakov wrote to Kirill Frolov:

RP> Algorithm Builder спасет тебя, 4 года на нем пишу, развивается хорошо,

URL?

Георгий

Reply to
George Shepelev

Hello All & George Shepelev!

formatting link

Руслан.

Reply to
Ruslan Polyakov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.