📄 fdct.asm
字号:
ADD ROUND2, A ; + 2*ROUND2
STH A, 1, Z70 ; = Z70
MAR *+AR2(8) ; Set AR2 to point to the next set
; of 8 inputs
*********************************************************************
; *
; PROCESS SECOND 8 INPUTS. Y(0,1)...Y(7,1) -> Z(0,1)...Z(7,1) *
; *
*********************************************************************
LD ROUND3, A ; + ROUND3
ADD *AR2+, 9, A ; + (Y0)
ADD *AR2+, 9, A ; + (Y1)
ADD *AR2+, 9, A ; + (Y2)
ADD *AR2+, 9, A ; + (Y3)
ADD *AR2+, 9, A ; + (Y4)
ADD *AR2+, 9, A ; + (Y5)
ADD *AR2+, 9, A ; + (Y6)
ADD *AR2, 9, A ; + (Y7)
STH A, Z01 ; = Z01
RPTZ A, #7
MACP *AR2-, COEF_F1, A
SFTA A, -6
MAR *AR2+ ; (128)[A*Y0+B*Y1+C*Y2-D*Y3-D*Y4
ADD ROUND2, A ; -C*Y5-B*Y6-A*Y7] + 2*ROUND2
STH A, 1, Z11 ; = Z11
LD ROUND2, -6, A ; (ROUND1)/64
LD E_P7, T
MAC *AR2+0, A ; + Y0*E_P7
MAS *AR2+, A ; - Y3*E_P7
MAS *AR2+0, A ; - Y4*E_P7
MAC *AR2-, A ; + Y7*E_P7
LD F_P7, T
MAC *AR2-, A ; + Y6*F_P7
MAS *AR2-0, A ; - Y5*F_P7
MAS *AR2-, A ; - Y2*F_P7
MAC *AR2-, A ; + Y1*F_P7
STH A, -5, Z21 ; Multiply prev summation by 128
; = Z21
RPTZ A, #7
MACP *AR2+, COEFF2, A ; 128(B*Y0-D*Y1-A*Y2-C*Y3+C*Y4+A*Y5
SFTA A, -6
MAR *AR2-
ADD ROUND2, A ; +D*Y6-B*Y7) + 2*ROUND2
STH A, 1, Z31 ; = Z31
LD ROUND3, A
ADD *AR2-, 9, A ; Y7
SUB *AR2-, 9, A ; - Y6
SUB *AR2-, 9, A ; - Y5
ADD *AR2-, 9, A ; + Y4
ADD *AR2-, 9, A ; + Y3
SUB *AR2-, 9, A ; - Y2
SUB *AR2-, 9, A ; - Y1
ADD *AR2, 9, A ; + Y0
STH A, Z41 ; = Z41
RPTZ A, #7
MACP *AR2+, COEFF3, A ; 218(D*Y0-C*Y1+B*Y2-A*Y3+A*Y4-B*Y5
SFTA A, -6 ; +C*Y6-D*Y7)
MAR *AR2-
ADD ROUND2, A ; + 2*ROUND2
STH A, 1, Z51 ; = Z51
LD ROUND2, -6, A ; (ROUND1)/64
LD F_P7, T
MAC *AR2-0, A ; + F_P7*X7
MAS *AR2-, A ; - F_P7*X4
MAS *AR2-0, A ; - F_P7*X3
MAC *AR2+, A ; + F_P7*X0
LD E_P7, T
MAS *AR2+, A ; - E_P7*X1
MAC *AR2+0, A ; + E_P7*X2
MAC *AR2+, A ; + E_P7*X5
MAS *AR2+, A ; - E_P7*X6
STH A, -5, Z61 ; Multiply prev summation by 128
; = Z61
RPTZ A, #7
MACP *AR2-, COEF_F4, A ; 128(D*Y0-C*Y1+B*Y2-A*Y3+A*Y4-B*Y5
SFTA A, -6 ; +C*Y6-D*Y7)
MAR *AR2+
ADD ROUND2, A ; + 2*ROUND2
STH A, 1, Z71 ; = Z71
MAR *+AR2(8) ; Set AR1 to point to the next set
; of 8 inputs
*********************************************************************
; *
; PROCESS THIRD 8 INPUTS. Y(0,2)...Y(7,2) -> Z(0,2)...Z(7,2) *
; *
*********************************************************************
LD ROUND3, A ; + ROUND3
ADD *AR2+, 9, A ; + (Y0)
ADD *AR2+, 9, A ; + (Y1)
ADD *AR2+, 9, A ; + (Y2)
ADD *AR2+, 9, A ; + (Y3)
ADD *AR2+, 9, A ; + (Y4)
ADD *AR2+, 9, A ; + (Y5)
ADD *AR2+, 9, A ; + (Y6)
ADD *AR2, 9, A ; + (Y7)
STH A, Z02 ; = Z02
RPTZ A, #7
MACP *AR2-, COEF_F1, A
SFTA A, -6
MAR *AR2+ ; (128)[A*Y0+B*Y1+C*Y2-D*Y3-D*Y4
ADD ROUND2, A ; -C*Y5-B*Y6-A*Y7] + 2*ROUND2
STH A, 1, Z12 ; = Z12
LD ROUND2, -6, A ; (ROUND1)/64
LD E_P7, T
MAC *AR2+0, A ; + Y0*E_P7
MAS *AR2+, A ; - Y3*E_P7
MAS *AR2+0, A ; - Y4*E_P7
MAC *AR2-, A ; + Y7*E_P7
LD F_P7, T
MAC *AR2-, A ; + Y6*F_P7
MAS *AR2-0, A ; - Y5*F_P7
MAS *AR2-, A ; - Y2*F_P7
MAC *AR2-, A ; + Y1*F_P7
STH A, -5, Z22 ; Multiply prev summation by 128
; = Z22
RPTZ A, #7
MACP *AR2+, COEFF2, A ; 128(B*Y0-D*Y1-A*Y2-C*Y3+C*Y4+A*Y5
SFTA A, -6
MAR *AR2-
ADD ROUND2, A ; +D*Y6-B*Y7) + 2*ROUND2
STH A, 1, Z32 ; = Z32
LD ROUND3, A
ADD *AR2-, 9, A ; Y7
SUB *AR2-, 9, A ; - Y6
SUB *AR2-, 9, A ; - Y5
ADD *AR2-, 9, A ; + Y4
ADD *AR2-, 9, A ; + Y3
SUB *AR2-, 9, A ; - Y2
SUB *AR2-, 9, A ; - Y1
ADD *AR2, 9, A ; + Y0
STH A, Z42 ; = Z42
RPTZ A, #7
MACP *AR2+, COEFF3, A ; 218(D*Y0-C*Y1+B*Y2-A*Y3+A*Y4-B*Y5
SFTA A, -6 ; +C*Y6-D*Y7)
MAR *AR2-
ADD ROUND2, A ; + 2*ROUND2
STH A, 1, Z52 ; = Z52
LD ROUND2, -6, A ; (ROUND1)/64
LD F_P7, T
MAC *AR2-0, A ; + F_P7*Y7
MAS *AR2-, A ; - F_P7*Y4
MAS *AR2-0, A ; - F_P7*Y3
MAC *AR2+, A ; + F_P7*Y0
LD E_P7, T
MAS *AR2+, A ; - E_P7*Y1
MAC *AR2+0, A ; + E_P7*Y2
MAC *AR2+, A ; + E_P7*Y5
MAS *AR2+, A ; - E_P7*Y6
STH A, -5, Z62 ; Multiply prev summation by 128
; = Z62
RPTZ A, #7
MACP *AR2-, COEF_F4, A ; 128(D*Y0-C*Y1+B*Y2-A*Y3+A*Y4-B*Y5
SFTA A, -6 ; +C*Y6-D*Y7)
MAR *AR2+
ADD ROUND2, A ; + 2*ROUND2
STH A, 1, Z72 ; = Z72
MAR *+AR2(8) ; Set AR1 to point to the next set
; of 8 inputs
*********************************************************************
; *
; PROCESS FOURTH 8 INPUTS. Y(0,3)...Y(7,3) -> Z(0,3)...Z(7,3) *
; *
*********************************************************************
LD ROUND3, A ; + ROUND3
ADD *AR2+, 9, A ; + (Y0)
ADD *AR2+, 9, A ; + (Y1)
ADD *AR2+, 9, A ; + (Y2)
ADD *AR2+, 9, A ; + (Y3)
ADD *AR2+, 9, A ; + (Y4)
ADD *AR2+, 9, A ; + (Y5)
ADD *AR2+, 9, A ; + (Y6)
ADD *AR2, 9, A ; + (Y7)
STH A, Z03 ; = Z03
RPTZ A, #7
MACP *AR2-, COEF_F1, A
SFTA A, -6
MAR *AR2+ ; (128)[A*Y0+B*Y1+C*Y2-D*Y3-D*Y4
ADD ROUND2, A ; -C*Y5-B*Y6-A*Y7] + 2*ROUND2
STH A, 1, Z13 ; = Z13
LD ROUND2, -6, A ; (ROUND1)/64
LD E_P7, T
MAC *AR2+0, A ; + Y0*E_P7
MAS *AR2+, A ; - Y3*E_P7
MAS *AR2+0, A ; - Y4*E_P7
MAC *AR2-, A ; + Y7*E_P7
LD F_P7, T
MAC *AR2-, A ; + Y6*F_P7
MAS *AR2-0, A ; - Y5*F_P7
MAS *AR2-, A ; - Y2*F_P7
MAC *AR2-, A ; + Y1*F_P7
STH A, -5, Z23 ; Multiply prev summation by 128
; = Z23
RPTZ A, #7
MACP *AR2+, COEFF2, A ; 128(B*Y0-D*Y1-A*Y2-C*Y3+C*Y4+A*Y5
SFTA A, -6
MAR *AR2-
ADD ROUND2, A ; +D*Y6-B*Y7) + 2*ROUND2
STH A, 1, Z33 ; = Z33
LD ROUND3, A
ADD *AR2-, 9, A ; Y7
SUB *AR2-, 9, A ; - Y6
SUB *AR2-, 9, A ; - Y5
ADD *AR2-, 9, A ; + Y4
ADD *AR2-, 9, A ; + Y3
SUB *AR2-, 9, A ; - Y2
SUB *AR2-, 9, A ; - Y1
ADD *AR2, 9, A ; + Y0
STH A, Z43 ; = Z43
RPTZ A, #7
MACP *AR2+, COEFF3, A ; 218(D*Y0-C*Y1+B*Y2-A*Y3+A*Y4-B*Y5
SFTA A, -6 ; +C*Y6-D*Y7)
MAR *AR2-
ADD ROUND2, A ; + 2*ROUND2
STH A, 1, Z53 ; = Z53
LD ROUND2, -6, A ; (ROUND1)/64
LD F_P7, T
MAC *AR2-0, A ; + F_P7*Y7
MAS *AR2-, A ; - F_P7*Y4
MAS *AR2-0, A ; - F_P7*Y3
MAC *AR2+, A ; + F_P7*Y0
LD E_P7, T
MAS *AR2+, A ; - E_P7*Y1
MAC *AR2+0, A ; + E_P7*Y2
MAC *AR2+, A ; + E_P7*Y5
MAS *AR2+, A ; - E_P7*Y6
STH A, -5, Z63 ; Multiply prev summation by 128
; = Z63
RPTZ A, #7
MACP *AR2-, COEF_F4, A ; 128(D*Y0-C*Y1+B*Y2-A*Y3+A*Y4-B*Y5
SFTA A, -6 ; +C*Y6-D*Y7)
MAR *AR2+
ADD ROUND2, A ; + 2*ROUND2
STH A, 1, Z73 ; = Z73
MAR *+AR2(8) ; Set AR1 to point to the next set
; of 8 inputs
*********************************************************************
; *
; PROCESS FIFTH 8 INPUTS. Y(0,4)...Y(7,4) -> Z(0,4)...Z(7,4) *
; *
*********************************************************************
LD ROUND3, A ; + ROUND3
ADD *AR2+, 9, A ; + (Y0)
ADD *AR2+, 9, A ; + (Y1)
ADD *AR2+, 9, A ; + (Y2)
ADD *AR2+, 9, A ; + (Y3)
ADD *AR2+, 9, A ; + (Y4)
ADD *AR2+, 9, A ; + (Y5)
ADD *AR2+, 9, A ; + (Y6)
ADD *AR2, 9, A ; + (Y7)
STH A, Z04 ; = Z04
RPTZ A, #7
MACP *AR2-, COEF_F1, A
SFTA A, -6
MAR *AR2+ ; (128)[A*Y0+B*Y1+C*Y2-D*Y3-D*Y4
ADD ROUND2, A ; -C*Y5-B*Y6-A*Y7] + 2*ROUND2
STH A, 1, Z14 ; = Z14
LD ROUND2, -6, A ; (ROUND1)/64
LD E_P7, T
MAC *AR2+0, A ; + Y0*E_P7
MAS *AR2+, A ; - Y3*E_P7
MAS *AR2+0, A ; - Y4*E_P7
MAC *AR2-, A ; + Y7*E_P7
LD F_P7, T
MAC *AR2-, A ; + Y6*F_P7
MAS *AR2-0, A ; - Y5*F_P7
MAS *AR2-, A ; - Y2*F_P7
MAC *AR2-, A ; + Y1*F_P7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -