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

|
Не взыщите но глупых вопросов не бывает. Как на ассемблере расшифровать две следующие записи (точне значки << |). 1. 1<<USIOIF 2.( 1<<USIOIF)|( 1<<USICS1) Заранее спасибо.
|
|
|
|
|
 |
Ответов
|
Jul 12 2012, 08:17
|

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

|
QUOTE (ILYAUL @ Jul 12 2012, 09:44)  Мне больше "нравится" когда написано так и по всему коду CODE UCSR0B = 0b10011000 И даже в этом случае невозможно понять, что тут происходит, не заглядывая в даташит. А значит нужно отвлекаться, что совсем не способствует сосредоточенному написанию/отладке программы, даже теоретически. А в процессе написания не защищает от ошибок/описок.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 12 2012, 21:56
|

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

|
QUOTE (Tiro @ Jul 12 2012, 23:41)  А почему Вы не напомнили, что макрос (1<<(x)) давно обозвали BIT(x). Читать совсем удобно. Возможно потому, что я понятия не имею, кто и где его так обозвал. Создатели avr-libc с вами не согласны - они обозвали такой макрос _BV(x). В то время как конструкция (1 <<(x)) совершенно однозначно понимается любым компилятором C, C++, "языков, похожих на C", многими ассемблерами и любым программистом, знающим любой из этих языков.  А еще обратите внимание на приведенную мной запись CODE UCSR0B = (1<<RXCIE0)|(0<<TXCIE0)|(0<<UDRIE0)|(1<<RXEN0)|(1<<TXEN0)|(0<<UCSZ02); Здесь совершенно четко видно - какой бит в нуле, а какой - в единице. И чтобы изменить значение бита, достаточно заменить ноль на единицу или наоборот. В случае же BIT(x) или битовых масок придется делать либо (1*BIT(x))|(0*BIT(y)), либо комментировать части выражения. Оба варианта совсем не добавляют читабельности. Еще для сброса бита можно удалять части выражения, но это тоже неудобно, ибо когда понадобится эту часть выражения снова вернуть - в большинстве случаев придется лезть в даташит/заголовочный файл, чтобы уточнить название добавляемого бита. QUOTE (Xenia @ Jul 12 2012, 20:26)  А когда siziof() в хидере не захотел компилить, то я и вовсе разозлилась.  Может быть отказался компилить, потому что на момент обработки этого sizeof размер был неизвестен (incomplete type)? Зачем расходовать нервные клетки? Просто поставьте себя на место компилятора. И на его месте, вероятно, вы бы сказали "Не виноватая я!!!..."
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 13 2012, 04:02
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Сергей Борщ @ Jul 13 2012, 00:56)  Может быть отказался компилить, потому что на момент обработки этого sizeof размер был неизвестен (incomplete type)? Скорее, было Код #if sizeof(foo) == moo Поскольку sizeof — оператор языка, в препроцессоре он не должен работать.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
Сообщений в этой теме
vvvalarm Ассемблер AVR Jul 11 2012, 19:55 ILYAUL Вот Jul 11 2012, 20:22 Xenia Это не ассемблер, а C. Сдвиг единички влево на ука... Jul 11 2012, 20:22 ILYAUL Цитата(Xenia @ Jul 12 2012, 00:22) Это не... Jul 11 2012, 20:27 _Артём_ Цитата(Xenia @ Jul 11 2012, 23:22) Это не... Jul 11 2012, 20:33  Xenia Цитата(_Артём_ @ Jul 12 2012, 00:33) Нет,... Jul 11 2012, 20:42   _Артём_ Цитата(Xenia @ Jul 11 2012, 23:42) Ясное ... Jul 11 2012, 21:54   V_G Цитата(Xenia @ Jul 12 2012, 06:42) Ясное ... Jul 11 2012, 23:00    SmarTrunk Как раз сейчас осваиваю не спеша ассемблер AVR. На... Jul 12 2012, 00:30     Сергей Борщ QUOTE (SmarTrunk @ Jul 12 2012, 03:30) Те... Jul 12 2012, 05:58     vvvalarm Цитата(SmarTrunk @ Jul 12 2012, 03:30) Ка... Jul 13 2012, 17:02 _Артём_ Цитата(vvvalarm @ Jul 11 2012, 22:55) Не ... Jul 11 2012, 20:23    Tiro Цитата(Сергей Борщ @ Jul 13 2012, 00:56) ... Jul 12 2012, 22:03     Сергей Борщ 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|