Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Ассемблерный сдвиг

Непрочитано 22.08.2012, 18:44  
serj_neo
Временная регистрация
 
Аватар для serj_neo
 
Регистрация: 16.01.2007
Адрес: Казахстан
Сообщений: 73
Сказал спасибо: 18
Сказали Спасибо 61 раз(а) в 18 сообщении(ях)
serj_neo на пути к лучшему
По умолчанию Re: Ассемблерный сдвиг

Сообщение от Hives Посмотреть сообщение
nonamedov потому что он пишет так же как вы читаете

вот что надо
http://www.gaw.ru/html.cgi/txt/doc/m...vr/asm/rol.htm
и цикл желательно развернуть чтобы скорость не просела
Извеняюсь. Иправил. Необходим сдвиг побитовый.
Реклама:
serj_neo вне форума  
Непрочитано 22.08.2012, 18:49  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Ассемблерный сдвиг

Сообщение от nonamedov Посмотреть сообщение
if (Buf[i+1] & 0x80)Buf[i] |= 1;
Ну и как же это читается? А главное для чего?
nonamedov вне форума  
Непрочитано 22.08.2012, 18:50  
serj_neo
Временная регистрация
 
Аватар для serj_neo
 
Регистрация: 16.01.2007
Адрес: Казахстан
Сообщений: 73
Сказал спасибо: 18
Сказали Спасибо 61 раз(а) в 18 сообщении(ях)
serj_neo на пути к лучшему
По умолчанию Re: Ассемблерный сдвиг

Сообщение от dosikus Посмотреть сообщение
serj_neo, Читаем очень внимательно http://www.gaw.ru/html.cgi/txt/doc/m...vr/asm/rol.htm
Обращаем внимание на то что происходит с CARRY ...
Ну тогда вопрос. Сдвигаю командой ROL . После этого компилятор считает цикл
for(i=Modules*32;i;i--)
{
}
И когда дело доходит до сдвига следующего байта, то в CARRY уже ничего нет.

В общем примерно понял. Всем Спасибо.
serj_neo вне форума  
Непрочитано 22.08.2012, 19:00  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Ассемблерный сдвиг

nonamedov это сдвиг строки из 384 байт на 1 (один) бит влево.
читается как "переносим старший бит следующего байта в младший бит предыдущего"
Hives вне форума  
Непрочитано 22.08.2012, 19:00  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Ассемблерный сдвиг

serj_neo, Разворачивайте цикл , вам же сказали.
Код:
  Buf[0] ‹‹=1;
  Buf[1] ‹‹=1;
  Buf[2] ‹‹=1;
 ...
  Buf[n] ‹‹=1;
Только не уверен , что ваш компиллятор к ROL приведет ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 22.08.2012, 19:08  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Ассемблерный сдвиг

Hives, это то понятно, главное, а для чего?
nonamedov вне форума  
Непрочитано 22.08.2012, 19:12  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Ассемблерный сдвиг

nonamedov за подробностями о том, что полезного делает алгоритм - к топикстартеру
Hives вне форума  
Непрочитано 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  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Ассемблерный сдвиг

Сообщение от Красный Свин Посмотреть сообщение
Если не секрет, зачем надо весь массив сдвигать на 1 бит? И действительно надо ли ?
Так же недоумеваю ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 22.08.2012, 21:51  
serj_neo
Временная регистрация
 
Аватар для serj_neo
 
Регистрация: 16.01.2007
Адрес: Казахстан
Сообщений: 73
Сказал спасибо: 18
Сказали Спасибо 61 раз(а) в 18 сообщении(ях)
serj_neo на пути к лучшему
По умолчанию Re: Ассемблерный сдвиг

Сообщение от dosikus Посмотреть сообщение
Так же недоумеваю ...
Сообщение от Hives
это то понятно, главное, а для чего?
Это видеобуфер ЛЕД панели 12 модулей 16х16 светодиодов.
Чтобы сделать бегущюю строку я просто сдвигаю буфер в нужную сторону.

Конечно пробовал выводить строку со смещением по Х, но знакогенератор во флеше, и размер буков 12х16 пикселей. Моргает изображение.
Индикация динамическая. Да и мега 8, а там памяти мало.

Последний раз редактировалось serj_neo; 22.08.2012 в 21:56.
serj_neo вне форума  
 

Метки
асм си
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
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.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.