![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
serg76, если честно не очень понимаю, что делает этот код...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Это 'код' разворачивает побитно переменную 'i' в переменную 'b'. Делает он это на ассемблере единственного реально существующего в мире процессора, так что все поголовно должны знать его ассемблер как 'отче наш' С исходным вопросом он конечно не имеет ничего общего, но зато 'ассемблер - это круто!' |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
там скрыто используется флаг. Если не ошибаюсь, получается два (круговых) стека, итерационо с одного справа сбрасывается бит во флаг, и с флага запихивается слева в другой, (а с другого опять через флаг в первый, но это уже вне задания) Т.е. после проведения операции оба байта будут содержать "зеркальное представление" другого, хотя для законченности не хватает в конце еще одной инструкции rcr i,1 Добавлено через 46 секунд |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
А тогда ясно. Я просто подумал что чисто командами там муть написана Добавлено через 40 секунд xvr, заметь что про флаг ты ничего не сказал (и наверно даже не подозревал) -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
сильно сомневаюсь, чтоб xvr не знал о флагах дело в том что в асме фактически все операции взаимодействуют через флаги и логика команд неподготовленных программистов ЯВУ легко поставит в затруднение. Это сообщение отредактировал(а) mes - 2.2.2010, 01:16 |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Ничего очевидного тут нет. Да и вообще у меня MSP430 мк, у которого хрен знает какие команды и уж тем более, как там дело обстоит с флагами. То есть пока использование в моем случае под вопросом (руки пока не доходят проверить). Сишными командами думаю все таки решить, есть одна идейка... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
очевидно тем, кто имел дело с асмом так же как Си`шникам конструкция i+=5; - с ходу и не понятно чем она ставит в тупик остальных ну про перестановку вроде бы Вы нашли решение (и даже не одно) , а в чем сейчас загвоздка ? нельзя ли мини пример ? чтоб понять, что из чего должно получиться .. |
|||
|
||||
| serg76 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 19.3.2008 Репутация: нет Всего: нет |
да с командами совсем плохо
код был написан на СВ6 имхо судя по командам проще биты по условию выставлять |
||||
|
|||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Нет времени, с железом разбираюсь Я через недельку отвечу, т.к. тогда новое железо будет готово и я перейду к программированию... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Итак пример из жизни. Есть два чипа, которые обмениваются информацией при помощи одного порта (8 бит). Но вот незадача - соединения идут крест на крест если посадить оба чипа одной стороне платы. Есть три решения: развести крест на крест (меняя сторону), посадить элементы на разные стороны платы или просто развернуть порядок битов в софте. Я выбрал третье решение, т.к. крест на крест это несуперское решение (общее правило: избегать перекрещивание для того, чтобы сигналы друг друга не портили), а если сажать чипы на разные стороны, то это геморр при сборке платы. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
как я понял у каждого чипа своя копия софта?. тогда делаете макрос типа SEND(value) и для софта каждого чипа определяете его нужным образом. тoгда не возникнет проблем и в дальнейшем , если вдруг вместо реверсного представления битов придется использовать некое другое (например если вынуждены будете пользовать другую развертку соединения чипов). Вместо макроса можно использовать функцию - вынести ее определения в разные файлы и для каждого чипа подключать нужный. P.S. в любом случае естественно придется полазить в проге и заменить все старые операции на новый макрос.. Это сообщение отредактировал(а) mes - 12.2.2010, 20:37 |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
Нет у одного из чипов софт не поменять. Я решил функцию сделать...
Да, это я как раз с сделал. Все завелось с пол оборота. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |