*********************************************************************
; *
; PROCESS FOURTH 8 INPUTS. X(3,0)...X(3,7) -> Y(3,0)...Y(3,7) *
; *
*********************************************************************
LD *AR1+, 4, A ; + (16)*(X0)
ADD *AR1+, 4, A ; + (16)*(X1)
ADD *AR1+, 4, A ; + (16)*(X2)
ADD *AR1+, 4, A ; + (16)*(X3)
ADD *AR1+, 4, A ; + (16)*(X4)
ADD *AR1+, 4, A ; + (16)*(X5)
ADD *AR1+, 4, A ; + (16)*(X6)
ADD *AR1, 4, A ; + (16)*(X7)
STL A, Y30 ; = Y30
RPTZ A, #7
MACP *AR1-, COEF_F1, A
SFTA A, 4
MAR *AR1+ ; (64)[A*X0+B*X1+C*X2-D*X3-D*X4
ADD ROUND1, A ; -C*X5-B*X6-A*X7] + 4*ROUND1
STH A, 2, Y31 ; = Y31
LD ROUND1, -4, A ; (ROUND1)/16
LD E_P6, T
MAC *AR1+0, A ; + X0*E_P6
MAS *AR1+, A ; - X3*E_P6
MAS *AR1+0, A ; - X4*E_P6
MAC *AR1-, A ; + X7*E_P6
LD F_P6, T
MAC *AR1-, A ; + X6*F_P6
MAS *AR1-0, A ; - X5*F_P6
MAS *AR1-, A ; - X2*F_P6
MAC *AR1-, A ; + X1*F_P6
STH A, 6, Y32 ; Multiply prev summation by 16
; = Y32
RPTZ A, #7
MACP *AR1+, COEFF2, A ; 64(B*X0-D*X1-A*X2-C*X3+C*X4+A*X5
SFTA A, 4
MAR *AR1-
ADD ROUND1, A ; +D*X6-B*X7) + 4*ROUND1
STH A, 2, Y33 ; = Y33
LD *AR1-, 4, A ; X7*16
SUB *AR1-, 4, A ; - X6*16
SUB *AR1-, 4, A ; - X5*16
ADD *AR1-, 4, A ; + X4*16
ADD *AR1-, 4, A ; + X3*16
SUB *AR1-, 4, A ; - X2*16
SUB *AR1-, 4, A ; - X1*16
ADD *AR1, 4, A ; + X0*16
STL A, Y34 ; = Y34
RPTZ A, #7
MACP *AR1+, COEFF3, A ; 8(D*X0-C*X1+B*X2-A*X3+A*X4-B*X5
SFTA A, 4 ; +C*X6-D*X7)
MAR *AR1-
ADD ROUND1, A ; + 4*ROUND1
STH A, 2, Y35 ; = Y35
LD ROUND1, -4, A ; (ROUND1)/16
LD F_P6, T
MAC *AR1-0, A ; + F_P6*X7
MAS *AR1-, A ; - F_P6*X4
MAS *AR1-0, A ; - F_P6*X3
MAC *AR1+, A ; + F_P6*X0
LD E_P6, T
MAS *AR1+, A ; - E_P6*X1
MAC *AR1+0, A ; + E_P6*X2
MAC *AR1+, A ; + E_P6*X5
MAS *AR1+, A ; - E_P6*X6
STH A, 6, Y36 ; Multiply prev summation by 16
; = Y36
RPTZ A, #7
MACP *AR1-, COEF_F4, A ; 64(D*X0-C*X1+B*X2-A*X3+A*X4-B*X5
SFTA A, 4 ; +C*X6-D*X7)
MAR *AR1+
ADD ROUND1, A ; + 4*ROUND1
STH A, 2, Y37 ; = Y37
MAR *+AR1(8) ; Set AR1 to point to the next set
; of 8 inputs
*********************************************************************
; *
; PROCESS FIFTH 8 INPUTS. X(4,0)...X(4,7) -> Y(4,0)...Y(4,7) *
; *
*********************************************************************
LD *AR1+, 4, A ; + (16)*(X0)
ADD *AR1+, 4, A ; + (16)*(X1)
ADD *AR1+, 4, A ; + (16)*(X2)
ADD *AR1+, 4, A ; + (16)*(X3)
ADD *AR1+, 4, A ; + (16)*(X4)
ADD *AR1+, 4, A ; + (16)*(X5)
ADD *AR1+, 4, A ; + (16)*(X6)
ADD *AR1, 4, A ; + (16)*(X7)
STL A, Y40 ; = Y40
RPTZ A, #7
MACP *AR1-, COEF_F1, A
SFTA A, 4
MAR *AR1+ ; (64)[A*X0+B*X1+C*X2-D*X3-D*X4
ADD ROUND1, A ; -C*X5-B*X6-A*X7] + 4*ROUND1
STH A, 2, Y41 ; = Y41
LD ROUND1, -4, A ; (ROUND1)/16
LD E_P6, T
MAC *AR1+0, A ; + X0*E_P6
MAS *AR1+, A ; - X3*E_P6
MAS *AR1+0, A ; - X4*E_P6
MAC *AR1-, A ; + X7*E_P6
LD F_P6, T
MAC *AR1-, A ; + X6*F_P6
MAS *AR1-0, A ; - X5*F_P6
MAS *AR1-, A ; - X2*F_P6
MAC *AR1-, A ; + X1*F_P6
STH A, 6, Y42 ; Multiply prev summation by 16
; = Y42
RPTZ A, #7
MACP *AR1+, COEFF2, A ; 64(B*X0-D*X1-A*X2-C*X3+C*X4+A*X5
SFTA A, 4
MAR *AR1-
ADD ROUND1, A ; +D*X6-B*X7) + 4*ROUND1
STH A, 2, Y43 ; = Y43
LD *AR1-, 4, A ; X7*16
SUB *AR1-, 4, A ; - X6*16
SUB *AR1-, 4, A ; - X5*16
ADD *AR1-, 4, A ; + X4*16
ADD *AR1-, 4, A ; + X3*16
SUB *AR1-, 4, A ; - X2*16
SUB *AR1-, 4, A ; - X1*16
ADD *AR1, 4, A ; + X0*16
STL A, Y44 ; = Y44
RPTZ A, #7
MACP *AR1+, COEFF3, A ; 8(D*X0-C*X1+B*X2-A*X3+A*X4-B*X5
SFTA A, 4 ; +C*X6-D*X7)
MAR *AR1-
ADD ROUND1, A ; + 4*ROUND1
STH A, 2, Y45 ; = Y45
LD ROUND1, -4, A ; (ROUND1)/16
LD F_P6, T
MAC *AR1-0, A ; + F_P6*X7
MAS *AR1-, A ; - F_P6*X4
MAS *AR1-0, A ; - F_P6*X3
MAC *AR1+, A ; + F_P6*X0
LD E_P6, T
MAS *AR1+, A ; - E_P6*X1
MAC *AR1+0, A ; + E_P6*X2
MAC *AR1+, A ; + E_P6*X5
MAS *AR1+, A ; - E_P6*X6
STH A, 6, Y46 ; Multiply prev summation by 16
; = Y46
RPTZ A, #7
MACP *AR1-, COEF_F4, A ; 64(D*X0-C*X1+B*X2-A*X3+A*X4-B*X5
SFTA A, 4 ; +C*X6-D*X7)
MAR *AR1+
ADD ROUND1, A ; + 4*ROUND1
STH A, 2, Y47 ; = Y47
ERROR:
MAR *+AR1(8) ; Set AR1 to point to the next set
; of 8 inputs
NOP
NOP
NOP
NOP
*********************************************************************
; *
; PROCESS SIXTH 8 INPUTS. X(5,0)...X(5,7) -> Y(5,0)...Y(5,7) *
; *
*********************************************************************
LD *AR1+, 4, A ; + (16)*(X0)
ADD *AR1+, 4, A ; + (16)*(X1)
ADD *AR1+, 4, A ; + (16)*(X2)
ADD *AR1+, 4, A ; + (16)*(X3)
ADD *AR1+, 4, A ; + (16)*(X4)
ADD *AR1+, 4, A ; + (16)*(X5)
ADD *AR1+, 4, A ; + (16)*(X6)
ADD *AR1, 4, A ; + (16)*(X7)
STL A, Y50 ; = Y50
RPTZ A, #7
MACP *AR1-, COEF_F1, A
SFTA A, 4
MAR *AR1+ ; (64)[A*X0+B*X1+C*X2-D*X3-D*X4
ADD ROUND1, A ; -C*X5-B*X6-A*X7] + 4*ROUND1
STH A, 2, Y51 ; = Y51
LD ROUND1, -4, A ; (ROUND1)/16
LD E_P6, T
MAC *AR1+0, A ; + X0*E_P6
MAS *AR1+, A ; - X3*E_P6
MAS *AR1+0, A ; - X4*E_P6
MAC *AR1-, A ; + X7*E_P6
LD F_P6, T
MAC *AR1-, A ; + X6*F_P6
MAS *AR1-0, A ; - X5*F_P6
MAS *AR1-, A ; - X2*F_P6
MAC *AR1-, A ; + X1*F_P6
STH A, 6, Y52 ; Multiply prev summation by 16
; = Y52
RPTZ A, #7
MACP *AR1+, COEFF2, A ; 64(B*X0-D*X1-A*X2-C*X3+C*X4+A*X5
SFTA A, 4
MAR *AR1-
ADD ROUND1, A ; +D*X6-B*X7) + 4*ROUND1
STH A, 2, Y53 ; = Y53
LD *AR1-, 4, A ; X7*16
SUB *AR1-, 4, A ; - X6*16
SUB *AR1-, 4, A ; - X5*16
ADD *AR1-, 4, A ; + X4*16
ADD *AR1-, 4, A ; + X3*16
SUB *AR1-, 4, A ; - X2*16
SUB *AR1-, 4, A ; - X1*16
ADD *AR1, 4, A ; + X0*16
STL A, Y54 ; = Y54
RPTZ A, #7
MACP *AR1+, COEFF3, A ; 8(D*X0-C*X1+B*X2-A*X3+A*X4-B*X5
SFTA A, 4 ; +C*X6-D*X7)
MAR *AR1-
ADD ROUND1, A ; + 4*ROUND1
STH A, 2, Y55 ; = Y55
LD ROUND1, -4, A ; (ROUND1)/16
LD F_P6, T
MAC *AR1-0, A ; + F_P6*X7
MAS *AR1-, A ; - F_P6*X4
MAS *AR1-0, A ; - F_P6*X3
MAC *AR1+, A ; + F_P6*X0
LD E_P6, T
MAS *AR1+, A ; - E_P6*X1
MAC *AR1+0, A ; + E_P6*X2
MAC *AR1+, A ; + E_P6*X5
MAS *AR1+, A ; - E_P6*X6
STH A, 6, Y56 ; Multiply prev summation by 16
; = Y56
RPTZ A, #7
MACP *AR1-, COEF_F4, A ; 64(D*X0-C*X1+B*X2-A*X3+A*X4-B*X5
SFTA A, 4 ; +C*X6-D*X7)
MAR *AR1+
ADD ROUND1, A ; + 4*ROUND1
STH A, 2, Y57 ; = Y57
MAR *+AR1(8) ; Set AR1 to point to the next set
; of 8 inputs
*********************************************************************
; *
; PROCESS SEVENTH 8 INPUTS. X(6,0)...X(6,7) -> Y(6,0)...Y(6,7) *
; *
*********************************************************************
LD *AR1+, 4, A ; + (16)*(X0)
ADD *AR1+, 4, A ; + (16)*(X1)
ADD *AR1+, 4, A ; + (16)*(X2)
ADD *AR1+, 4, A ; + (16)*(X3)
ADD *AR1+, 4, A ; + (16)*(X4)
ADD *AR1+, 4, A ; + (16)*(X5)
ADD *AR1+, 4, A ; + (16)*(X6)
ADD *AR1, 4, A ; + (16)*(X7)
STL A, Y60 ; = Y60
RPTZ A, #7
MACP *AR1-, COEF_F1, A
SFTA A, 4
MAR *AR1+ ; (64)[A*X0+B*X1+C*X2-D*X3-D*X4
ADD ROUND1, A ; -C*X5-B*X6-A*X7] + 4*ROUND1
STH A, 2, Y61 ; = Y61
LD ROUND1, -4, A ; (ROUND1)/16
LD E_P6, T
MAC *AR1+0, A ; + X0*E_P6
MAS *AR1+, A ; - X3*E_P6
MAS *AR1+0, A ; - X4*E_P6
MAC *AR1-, A ; + X7*E_P6
LD F_P6, T
MAC *AR1-, A ; + X6*F_P6
MAS *AR1-0, A ; - X5*F_P6
MAS *AR1-, A ; - X2*F_P6
MAC *AR1-, A ; + X1*F_P6
STH A, 6, Y62 ; Multiply prev summation by 16
; = Y62
RPTZ A, #7
MACP *AR1+, COEFF2, A ; 64(B*X0-D*X1-A*X2-C*X3+C*X4+A*X5
SFTA A, 4
MAR *AR1-
ADD ROUND1, A ; +D*X6-B*X7) + 4*ROUND1
STH A, 2, Y63 ; = Y63
LD *AR1-, 4, A ; X7*16
SUB *AR1-, 4, A ; - X6*16
SUB *AR1-, 4, A ; - X5*16
ADD *AR1-, 4, A ; + X4*16
ADD *AR1-, 4, A ; + X3*16
SUB *AR1-, 4, A ; - X2*16
SUB *AR1-, 4, A ; - X1*16
ADD *AR1, 4, A ; + X0*16
STL A, Y64 ; = Y64
RPTZ A, #7
MACP *AR1+, COEFF3, A ; 8(D*X0-C*X1+B*X2-A*X3+A*X4-B*X5
SFTA A, 4 ; +C*X6-D*X7)
MAR *AR1-
ADD ROUND1, A ; + 4*ROUND1
STH A, 2, Y65 ; = Y65
一周热门 更多>