Ассемблер (ASM) для AVR в вопросах и ответах
По-моему это не то, что я имел ввиду. Но давайте это обсудим в правильном топике, говорю ж не в удачном месте задал, удалять конечно уже не буду.
- Реклама
да, я такой. просто старею - память не та уже... хорошо хоть заметил ошибку и указал на нее, на сайте-то своем я так и не замечал до сих пор...Z_h_e писал(а):Первое, что я могу сказать: ARV, Вы негодяй!
но главное - вы разобрались
Добавлено after 9 minutes 38 seconds:
при наличии таких мощных макросов слабО сделать так, чтобы эта ситуация обрабатывалась?Z_h_e писал(а):Данный макрос коварен. Если Вы напишите PUSH Я1, то компилятор выдаст ошибку, а если ENTER Я1, то компилятор это проглотит и регистр не будет сохранен.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Так тут уже три дня надо будет потерять ))ARV писал(а):при наличии таких мощных макросов слабО сделать так
лучше три дня потерять, зато потом за полчаса долететь!Z_h_e писал(а):Так тут уже три дня надо будет потерять ))
Добавлено after 2 minutes 52 seconds:
основная мысль, которую я хотел донести, познакомив всех с GNU-AS, заключается в том, что ассемблер - это язык программирования, а не только мнемоника машинных кодов. соответственно пользоваться им можно (и нужно) именно как языком, используя богатые (ну, относительно) возможности для написания программ.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
К сожалению проект на асме не знает таких директив.
Добавлено after 2 minutes 11 seconds:
и не в нашу пользу )).
Добавлено after 2 minutes 11 seconds:
Зависимость то не линейная пошлаARV писал(а):лучше три дня потерять, зато потом за полчаса долететь!
- Реклама
что значит "проект на асме"? на том убогом асме, что позволяет AVR Studio? само собой, это очевидно. чтобы работать "с ассмом" по-нормальному, надо забыть про студию и ориентироваться на GCC.Z_h_e писал(а):К сожалению проект на асме не знает таких директив.
чтобы создать проект "на ассме" вы должны создать файлик *.S, в котором описать глобальную метку main - вот и все! вместо таблицы векторов - глобальные метки. если кроме ассемблера исходников на Си не будет - это все, что вы должны сделать. и будет вам счастье.
но, я ранее писал, и это наиболее актуально:
ARV писал(а):avr-as предназначен (и наиболее удобен) именно как средство расширения проектов Си/С++, а не как средство разработки проектов на ассемблере целиком (хотя можно и это, разумеется).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
У IAR неплохой asm . Позволяет делать локальные метки и главное понимает.
С IARом имею малое знакомство. STM8 пробовал. Пробовал разок, чтобы почувствовать что за камень, прогал на асме. У STM8 оказался мягко говоря странный синтаксис ассемблера.
Но я не это хотел сказать. Официальное описание синтаксиса асма для IAR под STM8 имеет кучу ошибок, пришлось тыком выяснять где фигурная скобка, а где простая и т.п.. А Chettuser выявил, до кучи, косяк в инклуднике.
Вот не знаю, конечно, как IAR с AVR дружит.
Но я не это хотел сказать. Официальное описание синтаксиса асма для IAR под STM8 имеет кучу ошибок, пришлось тыком выяснять где фигурная скобка, а где простая и т.п.. А Chettuser выявил, до кучи, косяк в инклуднике.
Вот не знаю, конечно, как IAR с AVR дружит.
Можно примеры файлика.s и .bat, чтобы странслировать и посмотреть листинг?чтобы создать проект "на ассме" вы должны создать файлик *.S, в котором описать глобальную метку main - вот и все! вместо таблицы векторов - глобальные метки. если кроме ассемблера исходников на Си не будет - это все, что вы должны сделать. и будет вам счастье.
У меня большие проблемы с синтаксисом.
У меня атмел студио 6. Создаете обычный сишный проект. А потом в него добавляете сколько угодно ассемблерных файлов .s. Про батник я тут ничего не знаю.
я не зря писал, что добавлять надо файлы .S - avr-gcc отличает большие и маленькие буквы в именах файлов и по-разному их обрабатывает. в частности, с большой буквой S ассемблер обрабатывает файл препроцессором, а с маленькой - не обрабатывает. так что расширение может приносить проблемы, если задавать его, не заморачиваясь.Z_h_e писал(а):сколько угодно ассемблерных файлов .s
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Я запускаю
c:\avr\asm\avrasm2 -llst.asm -fI -e%1_ee.hex -fI %1.asm
на выходе имею lst и два .hex
c:\avr\asm\avrasm2 -llst.asm -fI -e%1_ee.hex -fI %1.asm
на выходе имею lst и два .hex
и что? как это соотносится с этим:trofim2 писал(а):Я запускаю
c:\avr\asm\avrasm2 -llst.asm -fI -e%1_ee.hex -fI %1.asm
обращаю ваше внимание, что мои последние посты (на протяжении 2-3 страниц форума) касаются не avrasm2, а avr-as, который стандартно не входит в комплект AVR Studio, а является частью WinAVR. так же он должен быть в комплекте Atmel Toolchain, т.е. в комплекте Atmel Studio 6 и новее.trofim2 писал(а):Можно примеры файлика.s и .bat, чтобы странслировать и посмотреть листинг?
У меня большие проблемы с синтаксисом.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Дык... и avr-as и avr32-as еще у 4.19 в комплекте идут
в папке C:\Program Files\Atmel\AVR Tools\AVR Toolchain\bin
только снова батники запуска писать и еще один вариант синтаксиса прорабатывать...
мндяаа...
Да и рассчитано сие средство скорее для работы в комплексе AVR Toolchain, чем для автономно-самостоятельного применения...

в папке C:\Program Files\Atmel\AVR Tools\AVR Toolchain\bin
только снова батники запуска писать и еще один вариант синтаксиса прорабатывать...
мндяаа...
Да и рассчитано сие средство скорее для работы в комплексе AVR Toolchain, чем для автономно-самостоятельного применения...
дык я об этом уже сколько толкую!BOB51 писал(а):рассчитано сие средство скорее для работы в комплексе AVR Toolchain, чем для автономно-самостоятельного применен
и не батники тут нужны, а makefile.
в конце концов можно в командной строке написать вызов avr-gcc с указанием ему исходника на асме и остальными ключиками для окончательной компиляции и линковки (avr-gcc сам разберется, что за исходник ему подсунули и вызовет для компиляции avr-as)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Я вот тоже все никак не пойму народ. Если использовать GNU avr-as, то зачем тогда вообще писать на ассемблере в *.S файлах, если можно тоже самое написать в *.c, используя оператор asm.
avr-as именно для этого и предназначен вообще то.
avr-as именно для этого и предназначен вообще то.
Не ошибается только то, кто ничего не делает.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Тот, кто признает свои ошибки, на них учится.
Глупец же, упорствуя в своих заблуждениях, остается глупцом.
Я показал как сейчас транслирую код с помощью avrasm2, но как вы писали, что avr-as имеет больше
возможностей с точки зрения макросов. Хотелось бы попробовать.
возможностей с точки зрения макросов. Хотелось бы попробовать.
чего ж тут непонятного? во-первых, внутри asm() нельзя применять макросы - основная плюшка avr-as. во-вторых, синтаксис ассемблерных вставок GCC уж очень сильно отличается от привычного ассемблера...ptr128 писал(а):Я вот тоже все никак не пойму народ.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Чет я тоже не пойму.
В посте от "Вт окт 25, 2016" приведен пример использования макроса в прерывании на asm.
Или я чего то не до понял?
В посте от "Вт окт 25, 2016" приведен пример использования макроса в прерывании на asm.
Или я чего то не до понял?
во-первых, если ссылаетесь на пост, то делайте это обычным способом - ссылкой. иначе понять, что вы имеете ввиду, затруднительно.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 предназначен (и наиболее удобен) именно как средство расширения проектов Си/С++, а не как средство разработки проектов на ассемблере целиком (хотя можно и это, разумеется).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!



