📄 fdct.asm
字号:
STH A, -5, Z24 ; Multiply prev summation by 128
; = Z24
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, Z34 ; = Z34
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, Z44 ; = Z44
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, Z54 ; = Z54
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, Z64 ; Multiply prev summation by 128
; = Z64
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, Z74 ; = Z74
MAR *+AR2(8) ; Set AR1 to point to the next set
; of 8 inputs
*********************************************************************
; *
; PROCESS SIXTH 8 INPUTS. Y(0,5)...Y(7,5) -> Z(0,5)...Z(7,5) *
; *
*********************************************************************
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, Z05 ; = Z05
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, Z15 ; = Z15
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, Z25 ; Multiply prev summation by 128
; = Z25
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, Z35 ; = Z35
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, Z45 ; = Z45
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, Z55 ; = Z55
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, Z65 ; Multiply prev summation by 128
; = Z65
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, Z75 ; = Z75
MAR *+AR2(8) ; Set AR1 to point to the next set
; of 8 inputs
*********************************************************************
; *
; PROCESS SEVENTH 8 INPUTS. Y(0,6)...Y(7,6) -> Z(0,6)...Z(7,6) *
; *
*********************************************************************
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, Z06 ; = Z06
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, Z16 ; = Z16
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, Z26 ; Multiply prev summation by 128
; = Z26
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, Z36 ; = Z36
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, Z46 ; = Z46
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, Z56 ; = Z56
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, Z66 ; Multiply prev summation by 128
; = Z66
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, Z76 ; = Z76
MAR *+AR2(8) ; Set AR1 to point to the next set
; of 8 inputs
*********************************************************************
; *
; PROCESS EIGHTH 8 INPUTS. Y(0,7)...Y(7,7) -> Z(0,7)...Z(7,7) *
; *
*********************************************************************
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, Z07 ; = Z07
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, Z17 ; = Z17
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, Z27 ; Multiply prev summation by 128
; = Z27
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, Z37 ; = Z37
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, Z47 ; = Z47
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, Z57 ; = Z57
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -