Ассемблер (ASM) для AVR в вопросах и ответах
Наконец-то!
Docendo discimus
- Реклама
- Сообщения: 147
- Зарегистрирован: Чт янв 10, 2013 21:03:18
[uquote="pyzhman",url="/forum/viewtopic.php?p=3561863#p3561863"]Наконец-то![/uquote]
Прошло пол месяца, ну что поддувало тебе полегчало?
Прошло пол месяца, ну что поддувало тебе полегчало?
- Сообщения: 95
- Зарегистрирован: Вт ноя 09, 2010 22:39:31
Здравствуйте
.
..а в этом разделе можно подписаться (как опытный ассемблерщик) помогать с вашими вопросами(новичка), в обмен на помощ с протеусом?.
Добавимся в вайбер-скайп, и взаимовыгодно будем помогать...
в личку пишите, жду "взаимопомощи"
..а в этом разделе можно подписаться (как опытный ассемблерщик) помогать с вашими вопросами(новичка), в обмен на помощ с протеусом?.
Добавимся в вайбер-скайп, и взаимовыгодно будем помогать...
в личку пишите, жду "взаимопомощи"
Последний раз редактировалось Faun Ср фев 27, 2019 10:51:27, всего редактировалось 1 раз.
о протеусе лучше, пожалуй, в теме о протеусе... там и научат, если чтоFaun писал(а):чтобы меня научили протеусом пользоваться?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 95
- Зарегистрирован: Вт ноя 09, 2010 22:39:31
Нуу, в общем-то верно.. Зато здесь сидят те, кто ждет помощи в ассемблере... а тут бац!, "...так я-ж с протеусом на ты!. а в асм-е всё ни как..".
...Загляну и туда, пасип
...Загляну и туда, пасип
- Реклама
Приветствую всех!
Вопрос про GNU ассемблер.
Сделал макро, проверил. Разместил в отдельном файле.
Ставлю .include "gnu-as_macros.S". При сборке ругается на неизвестный опкод - не видит макроса.
Что-то прям как про те лыжи...
Где и чем намазать, чтобы поехало? 
Получилось только с препроцессором: #include "gnu-as_macros.S".
Добавлено after 11 minutes 34 seconds:
Получается, что макрос "виден" только в одном файле? Как-то совсем не по феншую...
Вопрос про GNU ассемблер.
Сделал макро, проверил. Разместил в отдельном файле.
Ставлю .include "gnu-as_macros.S". При сборке ругается на неизвестный опкод - не видит макроса.
Что-то прям как про те лыжи...
Получилось только с препроцессором: #include "gnu-as_macros.S".
Добавлено after 11 minutes 34 seconds:
Получается, что макрос "виден" только в одном файле? Как-то совсем не по феншую...
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
вы абсолютно неправильно используете ассемблерные модули!
в файле с расширением .S точно такой же модуль проекта, как и любой файл .c - его надо добавлять к числу компилируемых модулей, а не инклюдить.
в файле с расширением .S точно такой же модуль проекта, как и любой файл .c - его надо добавлять к числу компилируемых модулей, а не инклюдить.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Kavka
Попробуй расширение *.txt (#include "gnu-as_macros.txt") - по крайней мере в моём "слэнге" для штатных avrasm2, микрочипьева "среднемладшего" и с51asm подключение текстового файла проходит без замечаний.
Единственно сам файлик надо в простом редакторе делать - у мня dpad (https://yadi.sk/d/LCkSxcvnkqHfWg), у кого еще какой (но не word!!!)...

Попробуй расширение *.txt (#include "gnu-as_macros.txt") - по крайней мере в моём "слэнге" для штатных avrasm2, микрочипьева "среднемладшего" и с51asm подключение текстового файла проходит без замечаний.
Единственно сам файлик надо в простом редакторе делать - у мня dpad (https://yadi.sk/d/LCkSxcvnkqHfWg), у кого еще какой (но не word!!!)...
[uquote="ARV",url="/forum/viewtopic.php?p=3596132#p3596132"]вы абсолютно неправильно используете ассемблерные модули!
в файле с расширением .S точно такой же модуль проекта, как и любой файл .c - его надо добавлять к числу компилируемых модулей, а не инклюдить.[/uquote]
Ещё раз повторюсь - макрос в отдельном файле. Только макрос.
Его надо подключить к другим ассемблерным файлам, чтобы макрос можно было использовать в программе.
Там компилировать нечего, чтобы его отдельным файлом к проекту подключать.
BOB51, ну да, если использовать препроцессор (#include ...), а не ассемблеровскую директиву (.include "..."), то работает. Вопрос поэтому и возник.
Получается, что зона видимости макроса это файл где он определён и через директиву ассемблера макрос не вставляется.
Добавлено after 1 minute 55 seconds:
Не, чего-то не понимаю, однако. И найти доку что-то не плучается...
в файле с расширением .S точно такой же модуль проекта, как и любой файл .c - его надо добавлять к числу компилируемых модулей, а не инклюдить.[/uquote]
Ещё раз повторюсь - макрос в отдельном файле. Только макрос.
Его надо подключить к другим ассемблерным файлам, чтобы макрос можно было использовать в программе.
Там компилировать нечего, чтобы его отдельным файлом к проекту подключать.
BOB51, ну да, если использовать препроцессор (#include ...), а не ассемблеровскую директиву (.include "..."), то работает. Вопрос поэтому и возник.
Получается, что зона видимости макроса это файл где он определён и через директиву ассемблера макрос не вставляется.
Добавлено after 1 minute 55 seconds:
Не, чего-то не понимаю, однако. И найти доку что-то не плучается...
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
все именно так.Kavka писал(а):если использовать препроцессор (#include ...), а не ассемблеровскую директиву (.include "..."), то работает. Вопрос поэтому и возник.
Получается, что зона видимости макроса это файл где он определён и через директиву ассемблера макрос не вставляется.
gnu-as использует препроцессор точно так же, как и компилятор С/С++, поэтому все директивы препроцессора так же работают (почти - с типом int в макросах есть нюансы).
соответственно, содержимое подключаемого файла видимо там, где он подключен - точно так же, как и с .h-файлами.
только вот расширение .S давать таким подключаемым добавкам не комильфо, т.к. это расширение для ассемблерных модулей предназначено.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Разобрался. Нашёл .include на #define, в смысле нашла коса на камень. 
В итоге, в моём случае, не обойтись без препроцессора.
.include работает как положено. Проверил на простом макросе.
ARV, выглядело так, как будто макрос не определён совсем. Не смотря на на этот самый .include, которым и подключался файл с макросом.
Загвоздка оказалась в том, что нужны определения из заголовозников от avr-libc, а они только через препроцессор. Ну, и я, неверно интерпретировал ошибки компилятора.
В итоге, в моём случае, не обойтись без препроцессора.
.include работает как положено. Проверил на простом макросе.
ARV, выглядело так, как будто макрос не определён совсем. Не смотря на на этот самый .include, которым и подключался файл с макросом.
Загвоздка оказалась в том, что нужны определения из заголовозников от avr-libc, а они только через препроцессор. Ну, и я, неверно интерпретировал ошибки компилятора.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
ну, вас, Петровых, не поймешь... 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 1
- Зарегистрирован: Ср мар 20, 2019 11:56:11
Извините что не по теме. Может кто-нибудь прислать на почту Sampavel86@gmail.ru прошивку по ссыке https://remont-aud.net/dump/car_audio/d ... -1-0-47425 . Моих куриных мозгов не хватает пройти тест. Так бы даже не стал беспокоить, спасибо за понимание.
[uquote="ARV",url="/forum/viewtopic.php?p=3596305#p3596305"]только вот расширение .S давать таким подключаемым добавкам не комильфо, т.к. это расширение для ассемблерных модулей предназначено.[/uquote]
ARV, извините, уж, за назойливость.
Ассемблер с обработкой препроцессором, однако...

ARV, извините, уж, за назойливость.
https://gcc.gnu.org/onlinedocs/gcc-3.3/gcc/Overall-Options.htmlfile.S
Assembler code which must be preprocessed.
Ассемблер с обработкой препроцессором, однако...
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Не понял, при чем тут назойливость и я. Да, ассемблер с препроцессором, а маленькая .s без препроцессора, но все это МОДУЛИ проекта, которые компилируются раздельно и потом их объектные файлы линкуются в общий результат.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Я как бы вот к чему. Если сделать расширение не .S, например .asm, то такой файл не будет обрабатываться препроцессором и надо отдельно запускать препроцессор.Kavka писал(а):только вот расширение .S давать таким подключаемым добавкам не комильфо, т.к. это расширение для ассемблерных модулей предназначено.
Соответственно и основной файл модуля и подключаемые файлы через #include тоже .S, чтобы и они обрабатывались препроцессором автоматически.
Формально получается, что все файлы должны быть ассемблерными модулями с обработкой препроцессором - все *.S
ARV, возможно вас смущает, то что все файлы .S, но не все должны быть включены в компиляцию (в проект).
Но ведь аналогичная ситуация с "чистым" ассемблером, когда все файлы *.asm. Но точно так же, одни для компиляции, другие используются косвенно, через .include.
Не отрицаю, что затронутая тема может оказаться из разряда "на вкус и цвет... бозон Хигса кактус".
ARV, спасибо за участие.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
[uquote="Kavka",url="/forum/viewtopic.php?p=3598700#p3598700"]Если сделать расширение не .S, например .asm, то такой файл не будет обрабатываться препроцессором и надо отдельно запускать препроцессор.[/uquote]
Только в том случае, если компилятору явно не указано, что делать с данным файлом. Например, ключем -x assembler-with-cpp. И тогда вообще расширение может быть хоть ".мой ассемблерный изврат"
Только в том случае, если компилятору явно не указано, что делать с данным файлом. Например, ключем -x assembler-with-cpp. И тогда вообще расширение может быть хоть ".мой ассемблерный изврат"
сомневаюсь, что с кириллическими символами в именах файлов, скармливаемых GCC, все так просто...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
ARV, когда люди в чем-то сомневаются, они проводят эксперимент. В данном случе, времени на проведение такого эксперимента надо даже меньше, чем написание Вашего поста. Я, зная то, что gcc уже очень давно адаптирован к юникоду, таких сомнений не питаю 
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3598818#p3598818"]-x assembler-with-cpp[/uquote]Ну, да, какбы оно так.
Только не хочется лезть в глубь настроек проекта в студии, или в дебри make-файла...
Тем не менее спасибо за подсказку.
Только не хочется лезть в глубь настроек проекта в студии, или в дебри make-файла...
Тем не менее спасибо за подсказку.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)


