Ассемблерный сдвиг
22.08.2012, 18:44
|
|
|
Временная регистрация
Регистрация: 16.01.2007
Адрес: Казахстан
Сообщений: 73
Сказал спасибо: 18
Сказали Спасибо 61 раз(а) в 18 сообщении(ях)
|
Re: Ассемблерный сдвиг
Извеняюсь. Иправил. Необходим сдвиг побитовый.
|
|
|
|
22.08.2012, 18:49
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Ассемблерный сдвиг
Сообщение от nonamedov
|
|
if (Buf[i+1] & 0x80)Buf[i] |= 1;
|
Ну и как же это читается? А главное для чего?
|
|
|
|
22.08.2012, 18:50
|
|
|
Временная регистрация
Регистрация: 16.01.2007
Адрес: Казахстан
Сообщений: 73
Сказал спасибо: 18
Сказали Спасибо 61 раз(а) в 18 сообщении(ях)
|
Re: Ассемблерный сдвиг
Ну тогда вопрос. Сдвигаю командой ROL . После этого компилятор считает цикл
for(i=Modules*32;i;i--)
{
}
И когда дело доходит до сдвига следующего байта, то в CARRY уже ничего нет.
В общем примерно понял. Всем Спасибо.
|
|
|
|
22.08.2012, 19:00
|
|
|
Гражданин KAZUS.RUN
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
|
Re: Ассемблерный сдвиг
nonamedov это сдвиг строки из 384 байт на 1 (один) бит влево.
читается как "переносим старший бит следующего байта в младший бит предыдущего"
|
|
|
|
22.08.2012, 19:00
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: Ассемблерный сдвиг
serj_neo, Разворачивайте цикл , вам же сказали.
|
Код:
|
Buf[0] ‹‹=1;
Buf[1] ‹‹=1;
Buf[2] ‹‹=1;
...
Buf[n] ‹‹=1; |
Только не уверен , что ваш компиллятор к ROL приведет ...
__________________
Осторожно , злой кот
|
|
|
|
22.08.2012, 19:08
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Ассемблерный сдвиг
Hives, это то понятно, главное, а для чего?
|
|
|
|
22.08.2012, 19:12
|
|
|
Гражданин KAZUS.RUN
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
|
Re: Ассемблерный сдвиг
nonamedov за подробностями о том, что полезного делает алгоритм - к топикстартеру
|
|
|
|
22.08.2012, 19:17
|
|
|
Частый гость
Регистрация: 12.10.2010
Сообщений: 27
Сказал спасибо: 0
Сказали Спасибо 19 раз(а) в 14 сообщении(ях)
|
Re: Ассемблерный сдвиг
Сообщение от serj_neo
|
Доброго времени суток! Люди добрые кто может помогите решить проблему.
Пишу на Си в AvrStudio 6
Необходимо сдвинуть массив на один бит влево или вправо.
Пишу так
Выполняется сдвиг буфера примерно 3.8мс при кварце 16Мгц.
А необходимо сделать сдвиг как можно быстрее. Думаю на асме получится быстрее но асм не знаю и нет времени изучать.
Спасибо.
|
Если не секрет, зачем надо весь массив сдвигать на 1 бит? И действительно надо ли ?
Может можно рассматривать этот массив как битовый вектор и написать набор функций, который обеспечивает битовую адресацию внутри массива ? Тогда ничего сдвигать не потребуется, только индексы при обращении подкручивать соответственно...
Хотя если действительно надо сдвигать на бит кусок памяти то да.. Ручная оптимизация поможет
|
|
|
|
22.08.2012, 19:52
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: Ассемблерный сдвиг
Сообщение от Красный Свин
|
|
Если не секрет, зачем надо весь массив сдвигать на 1 бит? И действительно надо ли ?
|
Так же недоумеваю ...
__________________
Осторожно , злой кот
|
|
|
|
22.08.2012, 21:51
|
|
|
Временная регистрация
Регистрация: 16.01.2007
Адрес: Казахстан
Сообщений: 73
Сказал спасибо: 18
Сказали Спасибо 61 раз(а) в 18 сообщении(ях)
|
Re: Ассемблерный сдвиг
Сообщение от dosikus
|
|
Так же недоумеваю ...
|
|
Сообщение от Hives
|
|
это то понятно, главное, а для чего?
|
Это видеобуфер ЛЕД панели 12 модулей 16х16 светодиодов.
Чтобы сделать бегущюю строку я просто сдвигаю буфер в нужную сторону.
Конечно пробовал выводить строку со смещением по Х, но знакогенератор во флеше, и размер буков 12х16 пикселей. Моргает изображение.
Индикация динамическая. Да и мега 8, а там памяти мало.
Последний раз редактировалось serj_neo; 22.08.2012 в 21:56.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Сдвиг фаз при помощи ЦОС
|
lexa1000 |
Цифровые сигнальные процессоры |
11 |
05.04.2013 15:12 |
|
Сдвиг в тестбэнче
|
Aleksashka1 |
Микроконтроллеры, АЦП, память и т.д |
1 |
17.01.2011 16:26 |
|
Выбор, включение, модуляция, сдвиг и выключение
|
majorka65 |
Микроконтроллеры, АЦП, память и т.д |
1 |
26.05.2010 19:34 |
|
Сдвиг сигнала, почему?
|
Gonchar |
Микроконтроллеры, АЦП, память и т.д |
11 |
24.05.2010 23:42 |
|
Как или чем определить фазовый сдвиг
|
Online |
Измерительное оборудование |
19 |
06.11.2006 15:12 |
Часовой пояс GMT +4, время: 09:23.
|
|