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

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

Отправлено Zemfir 29 июня 2003 г. 01:13
В ответ на: Ответ: И еще вопрос. А если оптимизацию включить? отправлено Bill 28 июня 2003 г. 23:05

Вот: -Zg9.
называется, как увидел что делается для МСП, сразу сон пропал.
Если ворд поменять на байт, то это приведётся к размеру как для MSP.
Хотелось бы для АВР посмотреть.


327: //*****************************************************
328: char Bits1(unsigned word)
329: {
01F2 FFFF NOP
330: char count = 0;
01F4 6AD9 CLRF FSR2L, 0
331: if (word)
01F6 0100 MOVLB 0
01F8 51FF MOVF 0xff, 0, 0x1
01FA 11FE IORWF word, 0, 0x1
01FC B4D8 BTFSC STATUS, 0x2, 0
01FE D014 BRA 0x228
332: do{
333: ++count;
0200 2AD9 INCF FSR2L, 0x1, 0
334: }
335: while (word &= word-1);
0202 0100 MOVLB 0
0204 0EFF MOVLW 0xff
0206 25FE ADDWF word, 0, 0x1
0208 6E00 MOVWF 0, 0
020A 0EFF MOVLW 0xff
020C 21FF ADDWFC 0xff, 0, 0x1
020E 6E01 MOVWF 0x1, 0
0210 0EFE MOVLW 0xfe
0212 6EE9 MOVWF FSR0L, 0
0214 0E00 MOVLW 0
0216 6EEA MOVWF FSR0H, 0
0218 5000 MOVF 0, 0, 0
021A 16EE ANDWF POSTINC0, 0x1, 0
021C 5001 MOVF 0x1, 0, 0
021E 16ED ANDWF POSTDEC0, 0x1, 0
0220 50EE MOVF POSTINC0, 0, 0
0222 10ED IORWF POSTDEC0, 0, 0
0224 A4D8 BTFSS STATUS, 0x2, 0
0226 D7EC BRA 0x200
336: return count;
0228 50D9 MOVF FSR2L, 0, 0
337: }
022A 0012 RETURN 0

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

Ответы



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

E-mail: info@telesys.ru