?? cos1.asm
字號:
.mmregs
.def cos_generate,end_of_cose,main
.def d_cos_delay1,d_cos_delay2,d_theta,d_cosx
d_cos_delay1 .usect "cos_vars",1
d_cos_delay2 .usect "cos_vars",1
d_theta .usect "cos_vars",1
d_cosx .usect "cos_vars",1
k_cos_delay_0 .set 8*32768/10 ;0.8
k_cos_delay_1 .set 8*99619*32768/1000000 ;cos(5)*0.8
k_cos_delay_2 .set 8*9848*32768/100000 ;cos(10)*0.8
k_cos_theta .set 99619*32768/100000 ;cos(5)
k_2 .set 2h ;循環緩沖區大小
k_216 .set 216 ;指針
COSDATA .usect "cos_data",216 ; 3 cycles
.text
main:
RSBX CPL
ld #0,dp
SSBX SXM
SSBX FRCT
STM #COSDATA,AR5
NOP
LD #d_cos_delay1,DP
NOP
;初始化緩沖區
STM #d_cos_delay1,AR3
STM #d_theta,AR4
RPTZ A, #3h
STL A,*AR3+
;設置循環緩沖區大小
STM #1,AR0
STM #d_cosx,AR2
STM #k_2,BK
STM #k_216-1,BRC
NOP
STM #d_cos_delay1,AR3
ST #k_cos_delay_1,*AR3+
ST #k_cos_delay_2,*AR3
ST #k_cos_theta,d_cosx
ST #k_cos_delay_0,*ar5+
ST #k_cos_delay_1,*ar5+
ST #k_cos_delay_2,*ar5+
cos_generate:
RPTB end_of_cose-1
MPY *AR2,*AR3+0%,A ;cos(theta)*cos((n-1)theta)
SUB *AR3,15,A ;1/2*cos((n-2)theta)
SFTA A,1,A
STH A,*AR3 ;保存
MVDD *AR3,*AR5+
NOP
end_of_cose: NOP
cosend:
B cosend
.end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -