Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Zemfir 29 июня 2003 г. 01:47
В ответ на: Ответ: отправлено Zemfir 29 июня 2003 г. 01:13

Это тоже, но без учёта ЕРРаты, на два нопа меньше.
ещё меньше сделать не получилось, может у кого-нибудь получится???

327: //*****************************************************
328: char Bits1(unsigned word)
329: {
330: char count = 0;
0196 6AD9 CLRF FSR2L, 0
331: if (word)
0198 0100 MOVLB 0
019A 51FF MOVF 0xff, 0, 0x1
019C 11FE IORWF word, 0, 0x1
019E B4D8 BTFSC STATUS, 0x2, 0
01A0 D014 BRA 0x1ca
332: do{
333: ++count;
01A2 2AD9 INCF FSR2L, 0x1, 0
334: }
335: while (word &= word-1);
01A4 0100 MOVLB 0
01A6 0EFF MOVLW 0xff
01A8 25FE ADDWF word, 0, 0x1
01AA 6E00 MOVWF 0, 0
01AC 0EFF MOVLW 0xff
01AE 21FF ADDWFC 0xff, 0, 0x1
01B0 6E01 MOVWF 0x1, 0
01B2 0EFE MOVLW 0xfe
01B4 6EE9 MOVWF FSR0L, 0
01B6 0E00 MOVLW 0
01B8 6EEA MOVWF FSR0H, 0
01BA 5000 MOVF 0, 0, 0
01BC 16EE ANDWF POSTINC0, 0x1, 0
01BE 5001 MOVF 0x1, 0, 0
01C0 16ED ANDWF POSTDEC0, 0x1, 0
01C2 50EE MOVF POSTINC0, 0, 0
01C4 10ED IORWF POSTDEC0, 0, 0
01C6 A4D8 BTFSS STATUS, 0x2, 0
01C8 D7EC BRA 0x1a2
336: return count;
01CA 50D9 MOVF FSR2L, 0, 0
01CC 0012 RETURN 0
337: }

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru