Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Настоящий, полученный в результате АСМ-команды - оптимизатор помешает. Команды, которой Вы ждете, просто может не быть.А крутить фальшивый бит - это уже хня. (+)

Отправлено Quasy 01 июня 2007 г. 10:56
В ответ на: А кто не даёт организовать бит переноса программно? отправлено <font color=gray>Вяч</font> 01 июня 2007 г. 10:41

Но, м.б., Автор имел в виду истинно циклический сдвиг, то вот:

// Циклический сдвиг целой величины
#define ROTATE_LEFT(val,n) ((unsigned long)val < < n)|((unsigned long)val > > (sizeof(val)*8-n))
#define ROTATE_RIGHT(val,n) ((unsigned long)val > > n)|((unsigned long)val < < (sizeof(val)*8-n))

Сдвигает char'ы, int'ы, long'и. Работает на ИАРе
Примеры:
unsigned long xxl,yyl = PINC+0x12345678;
unsigned int xxi,yyi = PIND+0x1234;
unsigned char xxc,yyc = PIND+0x12;
xxl = ROTATE_LEFT(yyl,28);
printf("\n%04lx %04lx\n",yyl, xxl);
xxi = ROTATE_LEFT(yyi,16);
printf("\n%04x %04x\n",yyi, xxi);
xxc = ROTATE_LEFT(yyc,4);
printf("\n%02x %02x\n",yyc, xxc);
_NOP();
_NOP();
xxl = ROTATE_RIGHT(yyl,28);
printf("\n%04lx %04lx\n",yyl, xxl);
xxi = ROTATE_RIGHT(yyi,16);
printf("\n%04x %04x\n",yyi, xxi);
xxc = ROTATE_RIGHT(yyc,4);
printf("\n%02x %02x\n",yyc, xxc);
_NOP();
_NOP();
yyc = 0x01;
yyc = ROTATE_LEFT(yyc,1);
printf("\n%02x",yyc);
yyc = ROTATE_LEFT(yyc,1);
printf("\n%02x",yyc);
yyc = ROTATE_LEFT(yyc,1);
printf("\n%02x",yyc);
yyc = ROTATE_LEFT(yyc,1);
printf("\n%02x",yyc);




Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите 4 пополам:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru