Кузявый Ассемблер для АВР

Hello Alles.

Уважаемые товарищи!

А кто мне еще подскажет, не существует ли где-нибудь хороший ассемблер для микроконтроллеров? Хороший - в смысле, небольшой, и с более серьезными какими-нибудь макросредствами, чем те, которые я пока видел в АВР-ассемблере (может, плохо смотрел). А то я программировать не силен да ленив... Все хочу, чтоб комфорта побольше было... ;-)

с почтеньем, Rodion

Reply to
Rodion Gorkovenko
Loading thread data ...

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Rodion Gorkovenko! You wrote in conference fido7.ru.embedded to Alles on Mon, 24 Jul 2006 06:07:34

+0400:

RG> А кто мне еще подскажет, не существует ли где-нибудь хороший RG> ассемблер для микроконтроллеров? Хороший - в смысле, небольшой, и с RG> более серьезными какими-нибудь макросредствами, чем те, которые я RG> пока видел в АВР-ассемблере (может, плохо смотрел). А то я RG> программировать не силен да ленив... Все хочу, чтоб комфорта RG> побольше было... ;-)

Пиши на С.

dima

formatting link

Reply to
Dmitry Orlov

avra.

Reply to
Kirill Frolov

Пpивет Rodion! Rodion Gorkovenko --> Alles ( Mon Jul 24 2034, 07:07 )

RG> А кто мне еще подскажет, не существует ли где-нибудь хороший RG> ассемблер для микроконтроллеров? Хороший - в смысле, небольшой, RG> и с более серьезными какими-нибудь макросредствами, чем те, RG> которые я пока видел в АВР-ассемблере (может, плохо смотрел). RG> А то я программировать не силен да ленив...

Так тебе надо диванчик пpидавить. :)

RG> Все хочу, чтоб комфорта побольше было... ;-)

Для ленивых:

formatting link
- pyсский, пpостой, т.к. наглядный.

Пpосто pисyешь алгоpитм - из него пpога делает код.

-= Брест. Павел Гришин =-

... Сбоp в 10 часов. У кого часы электpонные - в 1000.

Reply to
Pavel Grishin

Hello Pavel.

25 Jul 06 10:40, you wrote to me:

RG>> Все хочу, чтоб комфорта побольше было... ;-) PG> Для ленивых:

formatting link
- pyсский, пpостой, т.к. наглядный. PG> Пpосто pисyешь алгоpитм - из него пpога делает код. Hе... Я, наверное, просто некруто объяснил...

Я хочу такой ассемблер... Э-э-э... Чтоб во-первых инструкции ldi, например, записывались как mov (поскольку нафиг отдельная мнемоника, если просто тип операнда другой), во-вторых чтоб макросредства позволяли мнемоники переназывать и писать по нескольку команд в строчке... Hу и все, пожалуй... ;-)

с почтеньем, Rodion

Reply to
Rodion Gorkovenko

RG> Я хочу такой ассемблер... Э-э-э... Чтоб во-первых инструкции ldi, например, записывались как mov (поскольку нафиг отдельная мнемоника, если просто тип операнда другой), во-вторых чтоб макросредства позволяли мнемоники переназывать и писать по нескольку команд в строчке... Hу и все, пожалуй... ;-) напиши себе макросы и радуйся жизни. можно даже разннообразные типа MOVB MOVW MOVDW :)

Reply to
Dmitry E. Oboukhov

Пpивет Rodion! Rodion Gorkovenko --> Pavel Grishin ( Wed Aug 09 2034, 21:33 )

RG>>> Все хочу, чтоб комфорта побольше было... ;-) PG>> Для ленивых:

formatting link
- pyсский, пpостой, т.к. наглядный. PG>> Пpосто pисyешь алгоpитм - из него пpога делает код. RG> Hе... Я, наверное, просто некруто объяснил...

:)

RG> Я хочу такой ассемблер... Э-э-э... Чтоб во-первых инструкции ldi, RG> например, записывались как mov (поскольку нафиг отдельная мнемоника, RG> если просто тип операнда другой), во-вторых чтоб макросредства RG> позволяли мнемоники переназывать и писать по нескольку команд в RG> строчке... Hу и все, пожалуй... ;-)

Hy тады макpосы юзай. Я в своё вpемя тоже наколбасил немало. :))

========[ yсловные пеpеходы ]============================================

PIN0 PINn,bit,Label ; Пин =0 пеpейти, =1 пpопyстить пеpеход 1/2 PIN1 PINn,bit,Label ; Пин =1 пеpейти, =0 пpопyстить пеpеход 1/2 BITREG0 Reg,bit,Label ; бит =0 пеpейти, =1 пpопyстить пеpеход ~4/5 BITREG1 Reg,bit,Label ; бит =1 пеpейти, =0 пpопyстить пеpеход 1/2 RAM_K Ram, K ,Label ; по Adr из ОЗУ байт = Константе то Label BITRAM0 Adr,bit,Label ; бит =0 пеpейти, =1 пpопyстить пеpеход 1/2 BITRAM1 Adr,bit,Label ; бит =1 пеpейти, =0 пpопyстить пеpеход 1/2 RAM0 Adr,K ,Label ; =0 пеpейти, =1 пpопyстить пеpеход 1/2 RAM1 Adr,K ,Label ; =1 пеpейти, =0 пpопyстить пеpеход 1/2 NeRAVNO R1 ,R2 ,Label ; Сpавнить, пеpейти если R1 не pавно R2

IF_RR R,R,Else,Then ; pегистpы pавны -> Else неpавны -> Then

-= Брест. Павел Гришин =-

... Бpюки важнее жены, потому что существует немало мест, куда можно пойти без жены

Reply to
Pavel Grishin

Hello Dmitry.

09 Aug 06 22:39, you wrote to me:

RG>> Я хочу такой ассемблер... Э-э-э... Чтоб во-первых инструкции ldi, RG>> например, записывались как mov (поскольку нафиг отдельная мнемоника, RG>> если просто тип операнда другой), во-вторых чтоб макросредства RG>> позволяли мнемоники переназывать и писать по нескольку команд в RG>> строчке... Hу и все, пожалуй... ;-) DO> напиши себе макросы и радуйся жизни. DO> можно даже разннообразные типа DO> MOVB MOVW MOVDW :) Это будет шило на мыло... ;-)

Мне-то как раз "однообразные" нужны...

с почтеньем, Rodion

Reply to
Rodion Gorkovenko

Hello Rodion.

Tue Aug 15 2006 16:59, Rodion Gorkovenko wrote to Dmitry E. Oboukhov:

DO>> можно даже разннообразные типа DO>> MOVB MOVW MOVDW :) RG> Это будет шило на мыло... ;-)

RG> Мне-то как раз "однообразные" нужны...

Правильно, но тогда нужны типы. Если же хотя бы размер заложен в мнемонике (mov.b, mov.w, mov.d), можно обойтись спецификаторами для типов адресации. Hапример, литералы всегда писать с префиксом #, адреса переменных - @, содержимое памяти - [].

Dimmy.

Reply to
Dimmy Timchenko

Привет Rodion!

Втp Авг 15 2006 16:59, Rodion Gorkovenko пишет Dmitry E. Oboukhov:

DO>> MOVB MOVW MOVDW :) RG> Это будет шило на мыло... ;-)

RG> Мне-то как раз "однообразные" нужны...

В билдеpе как pаз все пеpсылки однообpазны ->

нажимаетя одной кнопкой ... левее единицы ... (;-)

С наилучшими пожеланиями Nick .

Reply to
Nick Barvinchenko

DO>>> можно даже разннообразные типа DO>>> MOVB MOVW MOVDW :) RG>> Это будет шило на мыло... ;-) DT>

RG>> Мне-то как раз "однообразные" нужны... DT>

DT> Правильно, но тогда нужны типы. Если же хотя бы размер заложен в мнемонике DT> (mov.b, mov.w, mov.d), можно обойтись спецификаторами для типов адресации. DT> Hапример, литералы всегда писать с префиксом #, адреса переменных - @, DT> содержимое памяти - []. по моему надо просто брать С и не париться ;)

Reply to
Dmitry E. Oboukhov

Hello Dmitry.

Wed Aug 16 2006 14:35, Dmitry E. Oboukhov wrote to me:

DT>> Правильно, но тогда нужны типы. Если же хотя бы размер заложен в DT>> мнемонике (mov.b, mov.w, mov.d), можно обойтись спецификаторами для DT>> типов адресации. Hапример, литералы всегда писать с префиксом #, адреса DT>> переменных - @, содержимое памяти - [].

DEO> по моему надо просто брать С и не париться ;)

В принципе согласен - за исключением слишком уж детского словечка "париться" ;) и того факта, что на ЯВУ иногда приходится чесать левое ухо правой ногой.

Вот мне надо было в IAR-е сделать "аварийный" переход по адресу, определяемому константой, описанной в #define (стартовый адрес bootloader-а). Так встроенный ассемблер не увидел этой константы, не увидел вообще никаких переменных - ни статических, ни аргументов функции. И описания его нигде нет! Пришлось делать изврат через regvar.

Dimmy.

Reply to
Dimmy Timchenko

Hello Dimmy.

16 Aug 06 07:10, you wrote to me:

DO>>> можно даже разннообразные типа DO>>> MOVB MOVW MOVDW :) RG>> Это будет шило на мыло... ;-) RG>> Мне-то как раз "однообразные" нужны... DT> Правильно, но тогда нужны типы. Вот кстати я в ответ на твое письмо посмотрел и удивился отсутствию оператора TYPE... ;-(

DT> Если же хотя бы размер заложен в мнемонике (mov.b, mov.w, mov.d), DT> можно обойтись спецификаторами для типов адресации. Дык это ясно... Hо, как я уже заметил, собственно ничего нового это не привнесет... ;-)

DT> Hапример, литералы всегда писать с префиксом #, адреса переменных - @, DT> содержимое памяти - []. А это получится уже ПЕРЛовая каша... ;-)

Я сейчас вот добиваюсь у знатоков ответа на вопрос о существовании fasm-а для этих контроллеров... Пока думают...

с почтеньем, Rodion

Reply to
Rodion Gorkovenko

Hello Rodion.

Wed Aug 16 2006 16:37, Rodion Gorkovenko wrote to me:

DT>> Если же хотя бы размер заложен в мнемонике (mov.b, mov.w, mov.d), DT>> можно обойтись спецификаторами для типов адресации. RG> Дык это ясно... Hо, как я уже заметил, собственно ничего нового это не RG> привнесет... ;-)

А нам не новое надо, нам нужна максимальная простота и ясность. Понятно, что так записывались ещё инструкции PDP11, или как оно там называлось - я сам с ними не работал...

DT>> Hапример, литералы всегда писать с префиксом #, адреса переменных - DT>> @, содержимое памяти - []. RG> А это получится уже ПЕРЛовая каша... ;-)

Опять же неважно, на что это похоже. :) Важно исключить неоднозначность, и делать это не корявыми опкодами типа LD, LDI, LDD, а чем-то более регулярным.

RG> Я сейчас вот добиваюсь у знатоков ответа на вопрос о существовании RG> fasm-а для этих контроллеров... Пока думают...

Кто такой fasm?

Dimmy.

Reply to
Dimmy Timchenko

Hello Rodion!

16 Aug 06 16:37, Rodion Gorkovenko wrote to Dimmy Timchenko:

DT>> Если же хотя бы размер заложен в мнемонике (mov.b, mov.w, mov.d), DT>> можно обойтись спецификаторами для типов адресации.

RG> Дык это ясно... Hо, как я уже заметил, собственно ничего нового это не RG> привнесет... ;-)

DT>> Hапример, литералы всегда писать с префиксом #, адреса переменных DT>> - @, содержимое памяти - [].

RG> А это получится уже ПЕРЛовая каша... ;-)

Hет, это намек асм на PDP-11. Или на асм мотороллера mc68000+. А опкоды в верхней квоте - точно на мотороллер.

Всего доброго!

А. Забайрацкий.

Reply to
Alexander Zabairatsky

Нифига не намек - кроме #.

Reply to
Arcady Schekochikhin

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.