Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

По-моему это не то, что я имел ввиду. Но давайте это обсудим в правильном топике, говорю ж не в удачном месте задал, удалять конечно уже не буду.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18789
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Z_h_e писал(а):Первое, что я могу сказать: ARV, Вы негодяй!
да, я такой. просто старею - память не та уже... хорошо хоть заметил ошибку и указал на нее, на сайте-то своем я так и не замечал до сих пор...

но главное - вы разобрались :)))

Добавлено after 9 minutes 38 seconds:
Z_h_e писал(а):Данный макрос коварен. Если Вы напишите PUSH Я1, то компилятор выдаст ошибку, а если ENTER Я1, то компилятор это проглотит и регистр не будет сохранен.
при наличии таких мощных макросов слабО сделать так, чтобы эта ситуация обрабатывалась? ;)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

ARV писал(а):при наличии таких мощных макросов слабО сделать так
Так тут уже три дня надо будет потерять ))
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18789
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Z_h_e писал(а):Так тут уже три дня надо будет потерять ))
лучше три дня потерять, зато потом за полчаса долететь! :)))

Добавлено after 2 minutes 52 seconds:
основная мысль, которую я хотел донести, познакомив всех с GNU-AS, заключается в том, что ассемблер - это язык программирования, а не только мнемоника машинных кодов. соответственно пользоваться им можно (и нужно) именно как языком, используя богатые (ну, относительно) возможности для написания программ.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

К сожалению проект на асме не знает таких директив.

Добавлено after 2 minutes 11 seconds:
ARV писал(а):лучше три дня потерять, зато потом за полчаса долететь!
Зависимость то не линейная пошла :) и не в нашу пользу )).
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18789
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Z_h_e писал(а):К сожалению проект на асме не знает таких директив.
что значит "проект на асме"? на том убогом асме, что позволяет AVR Studio? само собой, это очевидно. чтобы работать "с ассмом" по-нормальному, надо забыть про студию и ориентироваться на GCC.

чтобы создать проект "на ассме" вы должны создать файлик *.S, в котором описать глобальную метку main - вот и все! вместо таблицы векторов - глобальные метки. если кроме ассемблера исходников на Си не будет - это все, что вы должны сделать. и будет вам счастье.

но, я ранее писал, и это наиболее актуально:
ARV писал(а):avr-as предназначен (и наиболее удобен) именно как средство расширения проектов Си/С++, а не как средство разработки проектов на ассемблере целиком (хотя можно и это, разумеется).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

У IAR неплохой asm . Позволяет делать локальные метки и главное понимает.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

С IARом имею малое знакомство. STM8 пробовал. Пробовал разок, чтобы почувствовать что за камень, прогал на асме. У STM8 оказался мягко говоря странный синтаксис ассемблера.
Но я не это хотел сказать. Официальное описание синтаксиса асма для IAR под STM8 имеет кучу ошибок, пришлось тыком выяснять где фигурная скобка, а где простая и т.п.. А Chettuser выявил, до кучи, косяк в инклуднике.

Вот не знаю, конечно, как IAR с AVR дружит.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

чтобы создать проект "на ассме" вы должны создать файлик *.S, в котором описать глобальную метку main - вот и все! вместо таблицы векторов - глобальные метки. если кроме ассемблера исходников на Си не будет - это все, что вы должны сделать. и будет вам счастье.
Можно примеры файлика.s и .bat, чтобы странслировать и посмотреть листинг?
У меня большие проблемы с синтаксисом.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

У меня атмел студио 6. Создаете обычный сишный проект. А потом в него добавляете сколько угодно ассемблерных файлов .s. Про батник я тут ничего не знаю.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18789
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Z_h_e писал(а):сколько угодно ассемблерных файлов .s
я не зря писал, что добавлять надо файлы .S - avr-gcc отличает большие и маленькие буквы в именах файлов и по-разному их обрабатывает. в частности, с большой буквой S ассемблер обрабатывает файл препроцессором, а с маленькой - не обрабатывает. так что расширение может приносить проблемы, если задавать его, не заморачиваясь.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

Я запускаю
c:\avr\asm\avrasm2 -llst.asm -fI -e%1_ee.hex -fI %1.asm
на выходе имею lst и два .hex
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18789
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

trofim2 писал(а):Я запускаю
c:\avr\asm\avrasm2 -llst.asm -fI -e%1_ee.hex -fI %1.asm
и что? как это соотносится с этим:
trofim2 писал(а):Можно примеры файлика.s и .bat, чтобы странслировать и посмотреть листинг?
У меня большие проблемы с синтаксисом.
обращаю ваше внимание, что мои последние посты (на протяжении 2-3 страниц форума) касаются не avrasm2, а avr-as, который стандартно не входит в комплект AVR Studio, а является частью WinAVR. так же он должен быть в комплекте Atmel Toolchain, т.е. в комплекте Atmel Studio 6 и новее.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Дык... и avr-as и avr32-as еще у 4.19 в комплекте идут
в папке C:\Program Files\Atmel\AVR Tools\AVR Toolchain\bin
:roll:
только снова батники запуска писать и еще один вариант синтаксиса прорабатывать...
мндяаа... :facepalm:
Да и рассчитано сие средство скорее для работы в комплексе AVR Toolchain, чем для автономно-самостоятельного применения...
:dont_know:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18789
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

BOB51 писал(а):рассчитано сие средство скорее для работы в комплексе AVR Toolchain, чем для автономно-самостоятельного применен
дык я об этом уже сколько толкую!

и не батники тут нужны, а makefile.

в конце концов можно в командной строке написать вызов avr-gcc с указанием ему исходника на асме и остальными ключиками для окончательной компиляции и линковки (avr-gcc сам разберется, что за исходник ему подсунули и вызовет для компиляции avr-as)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 606
Зарегистрирован: Чт окт 06, 2016 21:12:07
Откуда: Южное Бутово

Сообщение ptr128 »

Я вот тоже все никак не пойму народ. Если использовать GNU avr-as, то зачем тогда вообще писать на ассемблере в *.S файлах, если можно тоже самое написать в *.c, используя оператор asm.
avr-as именно для этого и предназначен вообще то.
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

Я показал как сейчас транслирую код с помощью avrasm2, но как вы писали, что avr-as имеет больше
возможностей с точки зрения макросов. Хотелось бы попробовать.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18789
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ptr128 писал(а):Я вот тоже все никак не пойму народ.
чего ж тут непонятного? во-первых, внутри asm() нельзя применять макросы - основная плюшка avr-as. во-вторых, синтаксис ассемблерных вставок GCC уж очень сильно отличается от привычного ассемблера...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

Чет я тоже не пойму.
В посте от "Вт окт 25, 2016" приведен пример использования макроса в прерывании на asm.

Или я чего то не до понял?
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18789
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

trofim2 писал(а):Чет я тоже не пойму
во-первых, если ссылаетесь на пост, то делайте это обычным способом - ссылкой. иначе понять, что вы имеете ввиду, затруднительно.
во-вторых, я специально для вас написал несколько сообщений, чтобы разъяснить вам, что avr-as не применяют так, как применяли avrasm2. это хотя бы понятно?
ARV писал(а):и не батники тут нужны, а makefile.

в конце концов можно в командной строке написать вызов avr-gcc с указанием ему исходника на асме и остальными ключиками для окончательной компиляции и линковки (avr-gcc сам разберется, что за исходник ему подсунули и вызовет для компиляции avr-as)
ARV писал(а):обращаю ваше внимание, что мои последние посты (на протяжении 2-3 страниц форума) касаются не avrasm2, а avr-as, который стандартно не входит в комплект AVR Studio, а является частью WinAVR. так же он должен быть в комплекте Atmel Toolchain, т.е. в комплекте Atmel Studio 6 и новее.
ARV писал(а):чтобы создать проект "на ассме" вы должны создать файлик *.S, в котором описать глобальную метку main - вот и все! вместо таблицы векторов - глобальные метки. если кроме ассемблера исходников на Си не будет - это все, что вы должны сделать. и будет вам счастье.

но, я ранее писал, и это наиболее актуально:
ARV писал(а):avr-as предназначен (и наиболее удобен) именно как средство расширения проектов Си/С++, а не как средство разработки проектов на ассемблере целиком (хотя можно и это, разумеется).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Ответить

Вернуться в «AVR»