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

 
 
> Перестановка бит в байте, получить зеркальное отображение
bbill
сообщение Nov 6 2008, 11:28
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 76
Регистрация: 21-10-05
Пользователь №: 9 941



Появилась необходимость (из-за разводки) перевернуть байт:
было 0b76543210
стало 0b01234567

Можно тупо bld/bst, но хотелось бы покороче. Кто сталкивался с подобной задачей.

P.S. В поиске нашел только обсуждение о перестановке двух бит.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ARV
сообщение Nov 7 2008, 15:45
Сообщение #2


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

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



вот на телесистемах была пару раз ветка по этой теме (поиск рулит) - там просто перлы были! 11 тактов, кажется или даже меньше! у меня только 14...


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 7 2008, 21:39
Сообщение #3


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(ARV @ Nov 7 2008, 18:45) *
вот на телесистемах была пару раз ветка по этой теме (поиск рулит) - там просто перлы были! 11 тактов, кажется или даже меньше!

НЕ ВЕРЮ!
Покажите <13 на AVR...

на PIC можно за 12
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Nov 8 2008, 05:27
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(singlskv @ Nov 8 2008, 00:39) *
на PIC можно за 12

Под "PIC" подразумевается 16-ая или 18-ая серии? Тогда интересно было бы взглянуть на реверс из трех инструкций... А для АВР можно и меньше 10 тактов если использовать таблицу.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 8 2008, 07:10
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Qwertty @ Nov 8 2008, 08:27) *
А для АВР можно и меньше 10 тактов если использовать таблицу.

Угу.
Код
  movw SaveZ,zL
  ldi      zh,high(bit_rev_table << 1)
; и занимайтесь скока угодно
mov    zL,r0
lpm
;....................
movw zL,SaveZ
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bbill   Перестановка бит в байте   Nov 6 2008, 11:28
- - =GM=   1) Если есть два свободных порта, переставить пров...   Nov 6 2008, 11:33
- - Maik-vs   Цитата(bbill @ Nov 6 2008, 14:28) Появила...   Nov 6 2008, 11:39
- - Сергей С.   Цитата(bbill @ Nov 6 2008, 16:28) Появила...   Nov 6 2008, 11:50
- - Vlad219i   Цитата(bbill @ Nov 6 2008, 15:28) Можно т...   Nov 6 2008, 12:45
- - МП41   Эх, не хватает однако подобной аппаратной команды....   Nov 6 2008, 13:08
- - CDT   Цитата(bbill @ Nov 6 2008, 14:28) Появила...   Nov 6 2008, 14:32
- - _Pasha   Кодrol tmp1 ror tmp2 ;........rept 8 раз А в чем п...   Nov 6 2008, 14:42
- - bbill   Спасибо Maik-vs. И короче, и главное быстрее. А ещ...   Nov 6 2008, 14:46
|- - Maik-vs   Цитата(bbill @ Nov 6 2008, 17:46) Спасибо...   Nov 7 2008, 12:42
- - Aleksandr Baranov   Bit Order   Nov 6 2008, 16:03
- - zombi   И всетаки мне кажется если скорость важнее то лучш...   Nov 7 2008, 14:22
- - ARV   Цитата(singlskv @ Nov 8 2008, 00:39) НЕ В...   Nov 7 2008, 21:45
- - ae_   Цитата(singlskv @ Nov 8 2008, 06:39) НЕ В...   Nov 8 2008, 10:43
- - singlskv   Цитата(ae_ @ Nov 8 2008, 13:43) 12 тактов...   Nov 8 2008, 20:22
- - Qwertty   Цитата(singlskv @ Nov 8 2008, 23:22) Увы,...   Nov 8 2008, 22:42
- - ae_   Цитата(Qwertty @ Nov 9 2008, 07:42) Идет ...   Nov 9 2008, 00:47
- - singlskv   Цитата(Qwertty @ Nov 9 2008, 01:42) Идет ...   Nov 9 2008, 08:24


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

 


RSS Текстовая версия Сейчас: 14th August 2025 - 00:49
Рейтинг@Mail.ru


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