|
Не поленился, написал.
Может где какую мелкую оптимизацию упустил.... 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