📄 wdf_ex3_asm.s43
字号:
rra.w R13
rra.w R13 ; Final output=X4*2^-4
sub.w R15, R13 ; R13=OUTP25
mov.w R13, &delay5 ; Delay5 updated with OUTP25
sub.w R12, R13 ; R13=OUTP15
rra.w R13 ; Divided by 2 as part of WDF algo
sub.w R13, &output1 ; Filter 1 final output updated. It is the
; input to Filter 2
; Filter 2 Low pass WDF
; Top part of Filter 2
; Adaptor 7 Type 1 Alpha7=0.44067912013
mov.w &output1, R11
mov.w R11, R12 ; R11=Input sample
sub.w &delay7,R12 ; R12=P17
mov.w R12,R13
rra.w R13
rra.w R13
sub.w R12,R13 ; X1=X*2^-2-X
rra.w R13
rra.w R13
add.w R12,R13 ; X2=X1*2^-2+X
rra.w R13
rra.w R13
rra.w R13
rra.w R13
sub.w R12,R13 ; X3=X2*2^-4-X
rra.w R13
rra.w R13
rra.w R13
add.w R12,R13 ; X4=X3*2^-3+X
rra.w R13 ; Final output=X4*2^-1
add.w &delay7,R13
mov.w R13, &delay7 ; Delay7 updated with OUTP27
sub.w R12,R13 ; R13=OUTP17
mov.w R13,R15 ; R15=OUTP17
; Adaptor 11 Type 2 Alpha11=0.4551195777
mov.w &delay10, R12
mov.w &delay11, R13
sub.w R12, R13 ; R13=P111
mov.w R13, R12
rra.w R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
add.w R12,R13 ; X1=X*2^-6+X
rra.w R13
rra.w R13
rra.w R13
add.w R12,R13 ; X2=X1*2^-3+X
rra.w R13
rra.w R13
sub.w R12,R13 ; X3=X2*2^-2-X
rra.w R13
rra.w R13
rra.w R13
add.w R12,R13 ; X4=X3*2^-3+X
rra.w R13 ; Final output=X4*2^-1
mov.w R13, R12
add.w &delay10, R13 ; R13=OUTP211
add.w &delay11, R12 ; R12=OUTP111
mov.w R13, &delay11 ; Delay11 updated with OUTP211
mov.w R12, R14 ; R14=OUTP111
; Adaptor 10 Type 4 Alpha10=0.244974070943
sub.w R15,R12 ; R13=P110
mov.w R12,R13
inv.w R13
add.w #1, R13
rra.w R13
rra.w R13
sub.w R12,R13 ; X1=-X*2^-2-X
rra.w R13
rra.w R13
rra.w R13
sub.w R12,R13 ; X2=X1*2^-3-X
rra.w R13
rra.w R13
sub.w R12,R13 ; X3=X2*2^-2-X
rra.w R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
add.w R12,R13 ; X4=X3*2^-6+X
rra.w R13
rra.w R13 ; Final output=X4*2^-2
sub.w R14,R13 ; R13=OUTP210
mov.w R13, &delay10 ; Delay10 updated with OUTP210
sub.w R12, R13 ; R13=OUTP110
mov.w R13, R15 ; R15=OUTP110
rra.w R13 ; Divided by 2 as part of WDF algo
mov.w R13, &output2 ; Top section output sample stored in Output2
; Bottom part of the second filter
; Adaptor 9 Type 1 Alpha9=0.332027780934
sub.w &delay9, &delay8
mov.w &delay8, R12 ; R12=P19
mov.w R12, R13
inv.w R13
add.w #1, R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
add.w R12,R13 ; X1=-X*2^-8+X
rra.w R13
rra.w R13
add.w R12,R13 ; X2=X1*2^-2+X
rra.w R13
rra.w R13
add.w R12,R13 ; X3=X2*2^-4+X
rra.w R13
rra.w R13
add.w R12,R13 ; X4=X3*2^-2+X
rra.w R13
rra.w R13 ; Final output=X4*2^-2
add.w &delay9, R13 ; R13=OUTP29
mov.w R13, &delay9 ; Delay9 updated with OUTP29
sub.w R12, R13 ; R13=OUTP19
mov.w R13, R15 ; R15=OUTP19
; Adaptor 8 Type 3 Alpha8=0.483475352921
mov.w R11, R14
sub.w R13, R14 ; R11=P18
mov.w R14, R12
mov.w R12, R13
rra.w R13
rra.w R13
add.w R12,R13 ; X1=X*2^-2+X
rra.w R13
rra.w R13
rra.w R13
rra.w R13
sub.w R12,R13 ; X2=X1*2^-4-X
rra.w R13
rra.w R13
rra.w R13
rra.w R13
sub.w R12,R13 ; X3=X2*2^-4-X
rra.w R13
rra.w R13
rra.w R13
rra.w R13
rra.w R13
add.w R12,R13 ; X4=X3*2^-5+X
rra.w R13 ; Final output=X4*2^-1
mov.w R13,R12
sub.w R11, R13 ; R13=OUTP28
mov.w R13, &delay8 ; Delay8 updated with OUTP28
sub.w R15, R12 ; R12=OUTP18
mov.w R12, R15 ; R15=OUTP18
; Adaptor 13 Type 1 Alph13=0.369550526968
mov.w &delay12, R12
mov.w &delay13, R13
sub.w R12, R13 ; R13=P113
mov.w R13, R12
rra.w R13
rra.w R13
sub.w R12,R13 ; X1=X*2^-2-X
rra.w R13
rra.w R13
add.w R12,R13 ; X2=X1*2^-2+X
rra.w R13
rra.w R13
add.w R12,R13 ; X3=X2*2^-2+X
rra.w R13
rra.w R13
sub.w R12,R13 ; X4=X3*2^-2-X
rra.w R13
rra.w R13
rra.w R13
rra.w R13
sub.w R12,R13 ; X5=X4*2^-4-X
rra.w R13
rra.w R13
add.w R12,R13 ; X6=X5*2^-2+X
rra.w R13 ; Final output=X6*2^-1
mov.w R13, R12
add.w &delay12, R13 ; R13=OUTP213
add.w &delay13, R12 ; R12=OUTP113
mov.w R13, &delay13 ; Delay13 updated with OUTP213
mov.w R12, R14 ; R14=OUTP213
; Adaptor 12 Type 4 Alpha12=0.06680470424
sub.w R15,R12 ; R13=P112
mov.w R12,R13
rra.w R13
rra.w R13
sub.w R12,R13 ; X1=X*2^-2-X
rra.w R13
rra.w R13
add.w R12,R13 ; X2=X1*2^-2+X
rra.w R13
rra.w R13
rra.w R13
add.w R12,R13 ; X3=X2*2^-3+X
rra.w R13
rra.w R13
rra.w R13
rra.w R13
add.w R12,R13 ; X4=X3*2^-4+X
rra.w R13
rra.w R13
rra.w R13
rra.w R13 ; Final output=X4*2^-4
sub.w R14,R13 ; R13=OUTP212
mov.w R13, &delay12 ; Delay12 updated with OUTP212
sub.w R12, R13 ; R13=OUTP112
rra.w R13 ; Divided by 2 as part of WDF algo
mov.w R13, R15 ; R15=OUTP112
add.w R13, &output2 ; Filter final output updated. It is the
; output of the BPF
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -