Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевернуть байт (поменять биты местами), как сделать с помощью #define 
:(
    Опции темы
cardinal
Дата 1.2.2010, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



serg76, если честно не очень понимаю, что делает этот код...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
xvr
Дата 1.2.2010, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(cardinal @ 1.2.2010,  21:12)
serg76, если честно не очень понимаю, что делает этот код...

Это 'код' разворачивает побитно переменную 'i' в переменную 'b'. Делает он это на ассемблере единственного реально существующего в мире процессора, так что все поголовно должны знать его ассемблер как 'отче наш'  smile (Кажется это PIC, но не поручусь)

С исходным вопросом он конечно не имеет ничего общего, но зато 'ассемблер - это круто!'  smile 

PM MAIL   Вверх
mes
Дата 1.2.2010, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(cardinal @  1.2.2010,  20:12 Найти цитируемый пост)
если честно не очень понимаю, что делает этот код.

там скрыто используется флаг. 
Если не ошибаюсь, получается два (круговых) стека,  итерационо с одного справа сбрасывается бит во флаг, и с флага запихивается слева в другой,
(а с другого опять через флаг в первый, но это уже вне задания)
Т.е. после проведения операции оба байта будут содержать "зеркальное представление" другого, хотя для законченности не хватает в конце еще одной инструкции  rcr i,1
 smile

Добавлено через 46 секунд
Цитата(xvr @  1.2.2010,  20:32 Найти цитируемый пост)
но зато 'ассемблер - это круто!'  smile

 smile 


--------------------
PM MAIL WWW   Вверх
cardinal
Дата 1.2.2010, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата(mes @  1.2.2010,  19:51 Найти цитируемый пост)
там скрыто используется флаг. 

А тогда ясно. Я просто подумал что чисто командами там муть написана smile

Добавлено через 40 секунд
xvr, заметь что про флаг ты ничего не сказал (и наверно даже не подозревал) smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
mes
Дата 2.2.2010, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(cardinal @  1.2.2010,  22:48 Найти цитируемый пост)
заметь что про флаг ты ничего не сказал (и наверно даже не подозревал) 

сильно сомневаюсь, чтоб xvr не знал о флагах    smile   а не сказал скорей всего ввиду "очевидности" сего факта  smile 
дело в том что в асме фактически все операции взаимодействуют через флаги и логика команд неподготовленных программистов ЯВУ легко поставит в затруднение.
smile


Это сообщение отредактировал(а) mes - 2.2.2010, 01:16


--------------------
PM MAIL WWW   Вверх
cardinal
Дата 2.2.2010, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата(mes @  1.2.2010,  23:16 Найти цитируемый пост)
а не сказал скорей всего ввиду "очевидности" сего факта  smile 

Ничего очевидного тут нет.

Да и вообще у меня MSP430 мк, у которого хрен знает какие команды и уж тем более, как там дело обстоит с флагами. То есть пока использование в моем случае под вопросом (руки пока не доходят проверить). Сишными командами думаю все таки решить, есть одна идейка...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
mes
Дата 2.2.2010, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(cardinal @  2.2.2010,  00:51 Найти цитируемый пост)

Ничего очевидного тут нет.

очевидно тем,  кто имел дело с асмом так же как Си`шникам конструкция i+=5; - с ходу и не понятно чем она ставит в тупик остальных smile


Цитата(cardinal @  2.2.2010,  00:51 Найти цитируемый пост)
Сишными командами думаю все таки решить

ну про перестановку вроде бы Вы нашли решение  (и даже не одно) , а в чем сейчас загвоздка ?
нельзя  ли мини пример ? чтоб понять,  что из чего должно получиться ..



--------------------
PM MAIL WWW   Вверх
serg76
Дата 2.2.2010, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 19.3.2008

Репутация: нет
Всего: нет



Цитата
Да и вообще у меня MSP430 мк, у которого хрен знает какие команды и уж тем более, как там дело обстоит с флагами

да с командами совсем плохо

Цитата
Сишными командами думаю все таки решить

код был написан на СВ6

имхо судя по командам проще биты по условию выставлять
PM   Вверх
cardinal
Дата 2.2.2010, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата(mes @  2.2.2010,  00:53 Найти цитируемый пост)
а в чем сейчас загвоздка ?

Нет времени, с железом разбираюсь smile 
Цитата(mes @  2.2.2010,  00:53 Найти цитируемый пост)
нельзя  ли мини пример ? чтоб понять,  что из чего должно получиться .

Я через недельку отвечу, т.к. тогда новое железо будет готово и я перейду к программированию...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
cardinal
Дата 12.2.2010, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата(mes @  2.2.2010,  00:53 Найти цитируемый пост)
нельзя  ли мини пример ? чтоб понять,  что из чего должно получиться ..

Итак пример из жизни. Есть два чипа, которые обмениваются информацией при помощи одного порта (8 бит). Но вот незадача - соединения идут крест на крест если посадить оба чипа одной стороне платы. Есть три решения: развести крест на крест (меняя сторону), посадить элементы на разные стороны платы или просто развернуть порядок битов в софте. Я выбрал третье решение, т.к. крест на крест это несуперское решение (общее правило: избегать перекрещивание для того, чтобы сигналы друг друга не портили), а если сажать чипы на разные стороны, то это геморр при сборке платы.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
mes
Дата 12.2.2010, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(cardinal @  12.2.2010,  00:56 Найти цитируемый пост)
Есть два чипа, которые обмениваются информацией при помощи одного порта (8 бит).

как я понял у каждого чипа своя копия софта?. тогда делаете макрос типа SEND(value) и для софта каждого чипа определяете его нужным образом.
тoгда не возникнет проблем и в дальнейшем , если вдруг вместо реверсного представления битов придется использовать некое другое (например если вынуждены будете пользовать другую развертку соединения чипов). 

Вместо макроса можно использовать функцию - вынести ее определения в разные файлы и для каждого чипа подключать нужный.

P.S. в любом случае естественно  придется полазить в проге и заменить все старые операции на новый макрос..

Это сообщение отредактировал(а) mes - 12.2.2010, 20:37


--------------------
PM MAIL WWW   Вверх
cardinal
Дата 13.2.2010, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата(mes @  12.2.2010,  18:36 Найти цитируемый пост)
как я понял у каждого чипа своя копия софта?

Нет у одного из чипов софт не поменять.
Цитата(mes @  12.2.2010,  18:36 Найти цитируемый пост)
тогда делаете макрос типа SEND(value)

Цитата(mes @  12.2.2010,  18:36 Найти цитируемый пост)
Вместо макроса можно использовать функцию

Я решил функцию сделать...
Цитата(mes @  12.2.2010,  18:36 Найти цитируемый пост)
P.S. в любом случае естественно  придется полазить в проге и заменить все старые операции на новый макрос..

Да, это я как раз с сделал. Все завелось с пол оборота. smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.