Вы крайне поверхностны, mse. Вот примеры...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено undefined 25 августа 2003 г. 21:42
В ответ на: уточнил ;О) 43 отправлено =mse= 25 августа 2003 г. 17:12

Не поленился, написал.
Может где какую мелкую оптимизацию упустил.... 16*16 unsigned

PIC18 28 тактов
AVR 35 тактов

clrf R15 ;; to speed up

lds R20, Arg1L ;; 2
lds R21, Arg1H ;; 2
lds R22, Arg2L ;; 2
lds R23, Arg2L ;; 2

mul R20, R22 ;; 2
mov R16, R0
mov R17, R1

mul R21, R23 ;; 2
mov R18, R0
mov R19, R1

mul R20, R23 ;; 2
add R17, R0
addc R18, R1
addc R19, R15

mul R21, R22 ;; 2
add R17, R0
addc R18, R1
addc R19, R15

sts ResLL, R16 ;; 2
sts ResLH, R17 ;; 2
sts ResHL, R18 ;; 2
sts ResHH, R19 ;; 2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PIC18 28 тактов, банки не показаны

movf Arg1L, w
mulwf Arg2L
movff PRODL, ResLL ;; 2
movff PRODH, ResLH ;; 2

movf Arg1H, w
mulwf Arg2H
movff PRODL, ResHL ;; 2
movff PRODH, ResHH ;; 2

movf Arg1L, w
mulwf Arg2H
movf PRODL, w
addwf ResLH, f
movf PRODH, w
addwfc ResHL, f
btfsc STATUS, c
incf ResHH, f

movf Arg1H, w
mulwf Arg2L
movf PRODL, w
addwf ResLH, f
movf PRODH, w
addwfc ResHL, f
btfsc STATUS, c
incf ResHH, f


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

Ответы



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

E-mail: info@telesys.ru