[an error occurred while processing this directive]
|
на самом деле не 40 а 37 тактов. Не надо занулять аккумуляторы, а просто вместо MAC ставить первыми MPY. Если с циклами, то будет 39 тактов.
; CDP <= vector w/circular addressing
; AR0 <= matrix
; AR2 <= output buffer
amar *ar0(#8*4),xar1 ; copy and prepare pointermpy *ar0+, *cdp+, AC0 :: mpy *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mov pair(HI(AC0)),dbl(*ar2+)mpy *ar0+, *cdp+, AC0 :: mpy *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mov pair(HI(AC0)),dbl(*ar2+)mpy *ar0+, *cdp+, AC0 :: mpy *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mov pair(HI(AC0)),dbl(*ar2+)mpy *ar0+, *cdp+, AC0 :: mpy *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
mov pair(HI(AC0)),dbl(*ar2+);------------------ with loops
amar *ar0(#8*4),xar1 ; 1 copy and prepare pointer
mov #3, BRC0 ; 1 ext. loop counter setup
rptblocal loop_ext ; 1 ext loop startmpy *ar0+, *cdp+, AC0 :: mpy *ar1+, *cdp+, AC1
|| rpt #6 ; 1 dual mpy || single repeat setupmac *ar0+, *cdp+, AC0 :: mac *ar1+, *cdp+, AC1
; 7 dual mac repeated 7 timesloop_ext: mov pair(HI(AC0)),dbl(*ar2+) ; 1 dual write
E-mail: info@telesys.ru