Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
BitRevers для ATмеги за 12 команд / 13 циклов (+)
Отправлено
Quasy 18 января 2008 г. 10:30
// Исходный байт пусть в R0
// Результат в R0
BitRevers12_13:
LDI R16, 16 ; 1 цикл
MUL R0, R16 ; 2,3
ADD R0,R0 ; 4
ROR R1 ; 5
ROL R0 ; 6
ROR R1 ; 7
ROL R0 ; 8
ROR R1 ; 9
ROL R0 ; 10
ROR R1 ; 11
ROL R0 ; 12
OR R0,R1 ; 13 end!
;------------------------------
Без дополнительных команд можно сохранять исходный байт в первозданном виде, разместив его, например, в R17... Тогда умножение будет MUL R17, R16... 12 команд / 13 циклов - неплохо для "классического" (или греко-римского) байтоверчения.
Составить ответ | Вернуться на конференцию
Ответы
- Хитёр, однако! 5+! — =AVR= (19.01.2008 00:04:32 80.92.96.19, пустое)
- Дух ЧерногоОрла не дает покоя пользователям конфы ;) — RED_DRAGON (18.01.2008 11:39:59 217.148.52.209, пустое)
- симпатично.. 5+ — argus98 (18.01.2008 11:01:48 81.22.205.230, пустое)
- Ответ: Не понял....А в чём вопрос-та? — Никуясепе (18.01.2008 10:55:25 217.118.66.36, пустое)
- Это ответ, Док... — -mse- (18.01.2008 10:58:59 83.239.86.98, пустое)
- Где увидел вопрос, родной? Это сообщение, не более того. — Quasy (18.01.2008 10:58:52 80.243.9.34, пустое)
- Док, тебе это конечно не знакомо, но тут граждане не только вопросы задают, а иногда на них и отвечают, делятся опытом.. :-)) :-р — Dr.Alex (18.01.2008 10:58:38 62.231.6.117, пустое)