реклама на сайте
подробности

 
 
> Ассемблер AVR
vvvalarm
сообщение Jul 11 2012, 19:55
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 11-07-12
Пользователь №: 72 725



Не взыщите но глупых вопросов не бывает.
Как на ассемблере расшифровать две следующие записи (точне значки << |).
1. 1<<USIOIF
2.( 1<<USIOIF)|( 1<<USICS1)
Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Jul 11 2012, 20:22
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Это не ассемблер, а C. Сдвиг единички влево на указанное число разрядов, где USIOIF, USICS1 и др. - номера битов (начиная с 0), определенные в каком-то из хидеров.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jul 11 2012, 20:33
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Xenia @ Jul 11 2012, 23:22) *
Это не ассемблер, а C

Нет, вы не правы: это вполне может быть ассембером. IAR AVR ассемблер вполне поймет такое например:
Код
andi R16, (1<<2) | (1<<7)

также как и #if, #define и тд по списку.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jul 11 2012, 20:42
Сообщение #4


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(_Артём_ @ Jul 12 2012, 00:33) *
Нет, вы не правы: это вполне может быть ассембером. IAR AVR ассемблер вполне поймет такое например:
andi R16, (1<<2) | (1<<7)
также как и #if, #define и тд по списку.


Ясное дело - из C спёрли. sm.gif
А что это за ассемблер? AVR Studio или какой-еще?
Go to the top of the page
 
+Quote Post
V_G
сообщение Jul 11 2012, 23:00
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(Xenia @ Jul 12 2012, 06:42) *
Ясное дело - из C спёрли. sm.gif
А что это за ассемблер? AVR Studio или какой-еще?

Да, в AVRAssembler 2 уже много Си-подобных директив. В 3 версию, наверно, половина Си перекочует
Go to the top of the page
 
+Quote Post
SmarTrunk
сообщение Jul 12 2012, 00:30
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 22-05-11
Из: Москва
Пользователь №: 65 195



Как раз сейчас осваиваю не спеша ассемблер AVR. Начитавшись умных и глупых книжек, скажу:

Такое широко используется в ассемблере AVR (в частности, в AVR Studio), чтобы установить нужные биты в разных служебных регистрах. А это всегда требуется при инициализации МК или изменении каких-то режимов (включении-выключении прерываний, интерфейсов и пр.) Поскольку точное положение управляющего бита в служебном регистре не запомнить, да еще в разных МК AVR они могут быть в разных местах, то так и делают, например операция (1<<USIOIF)|(1<<USICS1) дает байт с единицами на месте битов USIOF и USICS1, а остальные нули. Осталось записать этот байт в нужный служебный регистр, ну или сделать операцию ИЛИ, если остальные биты трогать не надо.

Теоретически это улучшает читаемость и (что важно) переносимость программы, поэтому активно рекомендуется так делать.

Разумеется, нужно включить командой .INCLUDE файл, соответствующий данному МК (например "M32DEF.INC"), в котором, как уже писали, этим константам соответствуют некоторые числа. Иначе работать не будет.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 12 2012, 05:58
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (SmarTrunk @ Jul 12 2012, 03:30) *
Теоретически это улучшает читаемость ... программы, поэтому активно рекомендуется так делать.
А вы попробуйте написать один проект используя только записи вида
CODE
UCSR0B = 0x98
вместо
CODE
UCSR0B = (1<<RXCIE0)|(0<<TXCIE0)|(0<<UDRIE0)|(1<<RXEN0)|(1<<TXEN0)|(0<<UCSZ02);
Я даже не говорю о том, чтобы что-то исправить в этом проекте через неделю - просто дописать его до конца и отладить. Думаю, вы очень быстро поймете, что такая запись улучшает читаемость не теоретически, а практически.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vvvalarm   Ассемблер AVR   Jul 11 2012, 19:55
- - ILYAUL   Вот   Jul 11 2012, 20:22
|- - ILYAUL   Цитата(Xenia @ Jul 12 2012, 00:22) Это не...   Jul 11 2012, 20:27
|- - _Артём_   Цитата(Xenia @ Jul 11 2012, 23:42) Ясное ...   Jul 11 2012, 21:54
|- - vvvalarm   Цитата(SmarTrunk @ Jul 12 2012, 03:30) Ка...   Jul 13 2012, 17:02
- - _Артём_   Цитата(vvvalarm @ Jul 11 2012, 22:55) Не ...   Jul 11 2012, 20:23
- - ILYAUL   Мне больше "нравится" когда написано так...   Jul 12 2012, 06:44
|- - Сергей Борщ   QUOTE (ILYAUL @ Jul 12 2012, 09:44) Мне б...   Jul 12 2012, 08:17
||- - Tiro   Цитата(Сергей Борщ @ Jul 12 2012, 11:17) ...   Jul 12 2012, 20:41
||- - Сергей Борщ   QUOTE (Tiro @ Jul 12 2012, 23:41) А почем...   Jul 12 2012, 21:56
||- - Tiro   Цитата(Сергей Борщ @ Jul 13 2012, 00:56) ...   Jul 12 2012, 22:03
||- - ReAl   Цитата(Сергей Борщ @ Jul 13 2012, 00:56) ...   Jul 13 2012, 04:02
||- - Сергей Борщ   QUOTE (ReAl @ Jul 13 2012, 07:02) операто...   Jul 13 2012, 06:31
||- - Xenia   Цитата(ReAl @ Jul 13 2012, 08:02) Скорее,...   Jul 13 2012, 07:57
||- - Сергей Борщ   QUOTE (Xenia @ Jul 13 2012, 10:57) уперся...   Jul 13 2012, 08:24
|||- - ReAl   Цитата(Сергей Борщ @ Jul 13 2012, 09:31) ...   Jul 14 2012, 10:31
||- - XVR   Цитата(Xenia @ Jul 13 2012, 11:57) а MS V...   Jul 13 2012, 08:45
||- - Xenia   Цитата(XVR @ Jul 13 2012, 12:45) А для пр...   Jul 13 2012, 10:14
|||- - XVR   Цитата(Xenia @ Jul 13 2012, 14:14) Не виж...   Jul 13 2012, 10:56
||- - demiurg_spb   да именно статк асерт здесь рулит. to Xenia: кон...   Jul 13 2012, 10:16
||- - Xenia   Цитата(demiurg_spb @ Jul 13 2012, 14:16) ...   Jul 13 2012, 11:07
||- - demiurg_spb   Цитата(Xenia @ Jul 13 2012, 15:07) Зато в...   Jul 13 2012, 11:45
|- - Xenia   Цитата(ILYAUL @ Jul 12 2012, 10:44) Мне б...   Jul 12 2012, 11:16
|- - _Артём_   Цитата(Xenia @ Jul 12 2012, 14:16) В тех ...   Jul 12 2012, 12:38
|- - kolobok0   Цитата(Xenia @ Jul 12 2012, 15:16) ...это...   Jul 12 2012, 12:47
||- - Xenia   Цитата(kolobok0 @ Jul 12 2012, 16:47) дол...   Jul 12 2012, 14:06
||- - ae_   Цитата(Xenia @ Jul 12 2012, 23:06) ...обр...   Jul 12 2012, 15:27
||- - Xenia   Цитата(ae_ @ Jul 12 2012, 19:27) .equ MAS...   Jul 12 2012, 16:00
||- - SSerge   Цитата(Xenia @ Jul 12 2012, 23:00) Ух ты...   Jul 12 2012, 17:18
||- - Xenia   Цитата(SSerge @ Jul 12 2012, 21:18) Это т...   Jul 12 2012, 17:26
|- - _Pasha   Цитата(Xenia @ Jul 12 2012, 14:16) В тех ...   Jul 13 2012, 00:26
|- - ae_   Цитата(_Pasha @ Jul 13 2012, 09:26) #defi...   Jul 13 2012, 03:11
- - ILYAUL   Так слово нравится я написал в ковычках - т.е как...   Jul 12 2012, 09:27
- - ILYAUL   Ну вот, и поговорили за asm   Jul 14 2012, 22:21
- - ReAl   — Привет, Пух! — Привет, Пятачок! — Хороша...   Jul 15 2012, 05:18
- - uni   Как я улучшаю читаемость при установке битов в кон...   Jul 26 2012, 00:39
- - ILYAUL   Вернёмся к asm. Тут вот , через эное количество ле...   Aug 6 2012, 17:43
|- - _Артём_   Цитата(ILYAUL @ Aug 6 2012, 20:43) что ме...   Aug 6 2012, 18:33
- - ILYAUL   Про него, родимого. Явных адресов подпрограмм Вы т...   Aug 6 2012, 19:30
|- - _Артём_   Цитата(ILYAUL @ Aug 6 2012, 22:30) Но пер...   Aug 6 2012, 20:13
- - ILYAUL   Нет . Артём , я Вам в личку отвечу подробно. Я по...   Aug 6 2012, 20:32
|- - kolobok0   Цитата(ILYAUL @ Aug 7 2012, 00:32) ...мож...   Aug 7 2012, 06:22
|- - demiurg_spb   Цитата(kolobok0 @ Aug 7 2012, 10:22) для ...   Aug 7 2012, 06:25
|- - kolobok0   Цитата(demiurg_spb @ Aug 7 2012, 10:25) ....   Aug 7 2012, 07:07
- - ILYAUL   Цитатаидёт речь об адресах, которые могут хранитьс...   Aug 7 2012, 08:41
|- - kolobok0   Цитата(ILYAUL @ Aug 7 2012, 12:41) ...Вы ...   Aug 7 2012, 11:38
- - ILYAUL   1. Я не храню там адреса переходов , я использую а...   Aug 7 2012, 12:42
|- - kolobok0   Цитата(ILYAUL @ Aug 7 2012, 16:42) ...2. ...   Aug 7 2012, 13:43
- - ILYAUL   Спасибо , за пояснения. ЦитатаОтсюда я и спрашивал...   Aug 7 2012, 15:34


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 17:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01517 секунд с 7
ELECTRONIX ©2004-2016