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

 
 
> Ассемблер 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
Ответов
ILYAUL
сообщение Jul 12 2012, 06:44
Сообщение #2


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Мне больше "нравится" когда написано так и по всему коду
Код
UCSR0B = 0b10011000


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jul 12 2012, 11:16
Сообщение #3


Гуру
******

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



Цитата(ILYAUL @ Jul 12 2012, 10:44) *
Мне больше "нравится" когда написано так и по всему коду
UCSR0B = 0b10011000


Э! Мне так тоже нравится. sm.gif Я в свое время голову ломала - зачем так вычурно биты определены, что каждый раз при их использовании приходится единицу влево сдвигать? А потом догадалась - это особенность специфических команд AVR, работающих с отдельными битами, типа:
sbi PORTA, PINA2
cbi PORTA, PINA2
где в качестве аргумента должен быть указан НОМЕР бита, а не маска.
В тех архитектурах, где подобных инструкций нет, битовые константы опредяляют, как маски, а единиц не двигают.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jul 12 2012, 12:47
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Xenia @ Jul 12 2012, 15:16) *
...это особенность специфических команд AVR, работающих с отдельными битами, типа:
sbi PORTA, PINA2
cbi PORTA, PINA2
где в качестве аргумента должен быть указан НОМЕР бита, а не маска.В тех архитектурах, где подобных инструкций нет, битовые константы опредяляют, как маски, а единиц не двигают.


долго читал пэйджер, тьху мессагу. что то с точностью да на оборот Вы написали явно.
наоборот, единицы двигаются при создании группы бит = масок. когда у нас один бит - то собственно достаточно явно указать бит. правда не все регистры корректно могут воспринимать это (sbi, cbi).
и вроде как до вашей мессаги sbi & cbi команды вообще не рассматривались. т.е. речь шла конкретно о сдвиге и всё что вокруг него крутиться.

тут наверное ближе слово не архитектура а компилятор. т.к. на выходе (в бинарнике) будет одна сущность = байт, слово, двойное слово и т.д.. а как вы его получили или слепили(можно например умножать в целых числах, или логически объеденять в различных системах счисления) - для железа вовсе фиолетово.

Сообщение отредактировал kolobok0 - Jul 12 2012, 12:52
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jul 12 2012, 14:06
Сообщение #5


Гуру
******

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



Цитата(kolobok0 @ Jul 12 2012, 16:47) *
долго читал пэйджер, тьху мессагу. что то с точностью да на оборот Вы написали явно.
наоборот, единицы двигаются при создании группы бит = масок. когда у нас один бит - то собственно достаточно явно указать бит. правда не все регистры корректно могут воспринимать это (sbi, cbi).
и вроде как до вашей мессаги sbi & cbi команды вообще не рассматривались. т.е. речь шла конкретно о сдвиге и всё что вокруг него крутиться.


В том-то и дело, что из номеров битов можно состряпать маску (сдвигая ту самую едлиницу), тогда как обратное преобразование арифметическими средствами невозможно. Поэтому, если в хидерах/инклюдах имена битов опредены, как маски, то использовать их в качестве аргументов sbi/cbi будет нельзя. А вот определение их, как номер бита, позволяет делать и то и другое, с теми лишь накладными расходами, что приходится двигать единицу, когда нужна маска. И несмотря на то, что двигается эта единица не в процессе исполнения, а в процесе компиляции, битовые маски, образуемые большим набором битов, выглядят в таком исполнении чудовищно. sm.gif А не было бы в инструкциях команд sbi/cbi, но не было бы и проблемы, т.к. ничто не мешало бы перейти на маски.
Go to the top of the page
 
+Quote Post
ae_
сообщение Jul 12 2012, 15:27
Сообщение #6


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(Xenia @ Jul 12 2012, 23:06) *
...обратное преобразование арифметическими средствами невозможно.

AVRASM & AVRASM2, установить в "1" бит 5 в регистре R16 и в PORTA.
Код
.equ MASK = 0b00100000
ORI R16, MASK
SBI PORTA, LOG2(MASK)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|- - Сергей Борщ   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 @ Jul 12 2012, 14:16) В тех ...   Jul 12 2012, 12:38
||- - 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 Текстовая версия Сейчас: 28th July 2025 - 16:11
Рейтинг@Mail.ru


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