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

Jul 24, 2006 15 Replies

Hello Alles.



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



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



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


 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

П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.

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

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

П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юки важнее жены, потому что существует немало мест, куда можно пойти без жены

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

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.

Привет Rodion!

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

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

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

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

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

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

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

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

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

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.

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

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.

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+. А опкоды в верхней квоте - точно на мотороллер.

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

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

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required