команды add, add ???

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
asd
Встал на лапы
Аватара пользователя
Сообщения: 95
Зарегистрирован: Сб янв 20, 2007 22:03:21
Откуда: от верблюда

Сообщение asd »

Не могу разобраться как работают вот эти команды:
add r1,r2
adc r3,r4
Кто знает, объясните как-нибудь по понятней.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3792
Зарегистрирован: Чт сен 14, 2006 11:42:09
Откуда: Обитаю на чердаке

Сообщение Мышонок »

Если это единственный вопрос, то его было бы уместнее задать в этой теме: http://www.radiokot.ru/forum/viewtopic.php?t=32 . На первый раз прощаю, при повторении - заработаешь флудимость!
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Могу ошибиться, т.к. не сказано о каком асме идет речь, но первая суммирует r1 и r2 и результат помещает в r1, а вторая не только прибавляет к r3 значение r4, но еще прибавляет значение флага переноса С, т.е. r3=r3+r4+С
а в некоторых ассемблерах вторая команда может прибавлять к r3 константу r4.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
asd
Встал на лапы
Аватара пользователя
Сообщения: 95
Зарегистрирован: Сб янв 20, 2007 22:03:21
Откуда: от верблюда

Сообщение asd »

что за флаг переноса ?
Реклама
Эиком - электронные компоненты и радиодетали
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

Флаг переноса устанавливается когда результат сложения больше 0хFF, Парой эти команда используюют для сложения 16-ти разрядных чисел. т.е. складываешь сначало младшие биты add, затем при сложении старших adc к результату придовляется флаг переноса 1 или 0.
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
Реклама
asd
Встал на лапы
Аватара пользователя
Сообщения: 95
Зарегистрирован: Сб янв 20, 2007 22:03:21
Откуда: от верблюда

Сообщение asd »

а это что за команды .macro и .endmacro ?
Реклама
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

asd если не ошибаюся начало и конец макроса. Уже не помню давно с этим не сталкивался вот ARV должен знать. Вроде макрос это что то типа функции в асме. Надо по контексту посмотреть и логически попробовать заключить.
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
asd
Встал на лапы
Аватара пользователя
Сообщения: 95
Зарегистрирован: Сб янв 20, 2007 22:03:21
Откуда: от верблюда

Сообщение asd »

ARV, AVRStudio на английском - мне не подходит.

А понятный учебник ассемблера ориентированный на МК я не могу найти , все они для PC. Если не сложно дайте ссылку, или если есть у вас - дайте качать.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

asd писал(а):ARV, AVRStudio на английском - мне не подходит.
А понятный учебник ассемблера ориентированный на МК я не могу найти , все они для PC. Если не сложно дайте ссылку, или если есть у вас - дайте качать.
1. Программист, не умеющий прочесть пары слов по-английски - это нонсенс! Надо учить... :)
2. Не поверю, что нельзя найти информации на русском по ассемблеру хоть для AVR, хоть для чего-то еще. Могу посоветовать одну из многих книг: А.В.Евстигнеев "Микроконтроллеры AVR семейства Classic фирмы Atmel" - что касается описания команд ассемблера, в этой книге все прилично описано, а вот в некоторых других главах есть ошибки. Книгу поищите в инете - уверен, найдете, например, гляньте тут: http://lord-n.narod.ru/walla.html
3. "Ассемблер, ориентированный на МК" - так же нонсенс, т.к. ассемблер - это аппаратно-зависимый язык, для каждого МК он свой, хотя идеи и принципы общие. Если осилите ассемблер для PC, то уж для МК освоите элементарно!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

А.В.Евстигнеев реальная книга я по ней авры изучаю просто и доступно!!!! и по той сцылке эта книга есть сам видел
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
asd
Встал на лапы
Аватара пользователя
Сообщения: 95
Зарегистрирован: Сб янв 20, 2007 22:03:21
Откуда: от верблюда

Сообщение asd »

AVR, вот посмотрите программу , что это @1, @0 . В самом начале, в макросах.
Вложения
indicate+keyboard.txt
(8.53 КБ) 483 скачивания
Вечно гонимый
Аватара пользователя
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

asd писал(а):что это @1, @0
наверно адреса 1 и 0 в памяти.
Последний раз редактировалось Abakt Пт фев 16, 2007 23:16:38, всего редактировалось 1 раз.
Вечно гонимый
Аватара пользователя
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

moLCHec писал(а):А.В.Евстигнеев реальная книга
а не Ефстифеев ?
Вечно гонимый
Аватара пользователя
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

Справка по ассемблеру для AVR на русском языке.
http://electronix.ru/forum/index.php?s= ... st&id=9434
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

Получается функция как в Си???

PS мастер класс от ARV)))))
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Макрос - это не совсем аналого функци Си, хотя кое-что очень похоже.
Во-первых, функция исползует реализацию в виде rcall-ret, то есть на всю программу - один код, который может вызываться 100 раз. Макрос же при 100-кратном использовании 100 раз повторит в коде собственные команды.
Во-вторых, в функцию передаются реальные параметры, т.е. какие-то ЧИСЛА, которые загоняются в регистры или в стек перед rcall. /Макрос же использует подстановки, т.е. если написано .macro MyMacro, то когда вы будете использовать в коде своей проги MyMacro r1, 125 - компилятор подставит в это место код макроса, в котором все @0 будут заменены на r1, а все @1 - на 125, и все.
Макрос имеет перед функцией Си преимущество в том, что не тратит стек и память, а так же дает более скоростной вариант кода (если грамотно использован), но его недостаток в том, что увеличивается размер кода. Для работы на ассемблере макросы позволяют упростить процесс написания программы, доведя его практически до уровня применения Си.
Последний раз редактировалось ARV Сб фев 17, 2007 16:06:51, всего редактировалось 1 раз.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
asd
Встал на лапы
Аватара пользователя
Сообщения: 95
Зарегистрирован: Сб янв 20, 2007 22:03:21
Откуда: от верблюда

Сообщение asd »

а сколько мах псевдопараметров может иметь 1 макрос?
И что такое "Исключающее ИЛИ"
Вечно гонимый
Аватара пользователя
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

asd писал(а):а сколько мах псевдопараметров может иметь 1 макрос?
Справка по ассемблеру для AVR на русском языке.
http://electronix.ru/forum/index.php?s= ... st&id=9434

10
asd писал(а):что такое "Исключающее ИЛИ"
логические операции
pid.by.ru/05.htm
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

asd писал(а):а сколько мах псевдопараметров может иметь 1 макрос?
И что такое "Исключающее ИЛИ"
Если мне не изменяет память, то теоретически количество псевдопараметров не ограничено, но смысла использовать больше десятка просто нет никакого. Вряд ли вы придумаете макрос, для которого потребуется много параметров, и даже если придумаете, это будет скорее демонстрация своей упертости, а не реальной необходтимости. Но лучше почитать в справочнике про конкретный компилятор ассемблера - разные производители могут вводить свобственные ограничения.
Исключающее ИЛИ - этот логическая функция, результат которой равен 1 только в том случае, если все ее входные параметры НЕ ОДИНАКОВЫ. Для двух входных параметров верны следующие равенства:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0, где XOR - функция исключающего или.
Иногда эту функцию называют "сложение по модулю 2"
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

ДА спасибо ARV я уже потом догнал что функция вызывается а тут подставляется в Си это делается опретором #define например #define SetBit(x,y) x|=y. С точки зрения объёма лучше функцию вызвать а с точки зрения скорости пожалуй макрос. Вроде я всё правильно понял.
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»