⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cosx.asm

📁 这里面有很多dsp应用程序源码
💻 ASM
字号:

******************************************************
* 	用泰勒级数开展开式计算一个角度的正弦值 	     *
*    cos(x)=1-x*x/2(1-x*x/3*4(1-x*x/5*6(x*x/7*8)))   *
******************************************************
	.title	"cosx.asm"
	.mmregs
	.def	start
STACK:	.usect	"STACK",10
start:	STM	#STACK+10,SP
	LD	#d_x,DP
	ST	#6487H,d_x			;x-->d_x
	CALL	cos_start
end:	B	end
cos_start:
	.def	cos_start
d_coeff	.usect	"coeff",4
	.data
table:	.word	0249H		;c1=1/(7*8)
	.word	0444H			;c2=1/(5*6)
	.word	0AABH			;c3=1/(3*4)
	.word	4000H			;c4=1/(1*2)
d_x	.usect	"cos_vars",1
d_squr_x .usect	"cos_vars",1
d_temp	.usect	"cos_vars",1
d_cosx	.usect	"cos_vars",1
c_1	.usect	"cos_vars",1
	.text
	SSBX	FRCT
	STM	#d_coeff,AR5
	RPT	#3
	MVPD	#table,*AR5+
	STM	#d_coeff,AR3
	STM	#d_x,AR2
	STM	#c_1,AR4
	ST	#7FFFH,c_1
	SQUR	*AR2+,A			;A=x^2
	ST	A,*AR2				;(AR2)=x^2
	||LD	*AR4,B			;B=1
	MASR	*AR2+,*AR3+,B,A	;A=1-x^2/56,T=x^2
	MPYA	A				;A=T*A=x^2(1-x^2/56)
	STH	A,*AR2				;(d_temp)=x^2(1-x^2/56)
	MASR	*AR2-,*AR3+,B,A	;A=1-x^2/30(1-x^2/56),T=x^2(1-x^2/56)
	MPYA	*AR2+			;B=x^2(1-x^2/30(1-x^2/56))
	ST	B,*AR2				;(d_temp)=x^2(1-x^2/30(1-x^2/56))
	||LD	*AR4,B			;B=1
	MASR	*AR2-,*AR3+,B,A	;A=1-x^2(1-x^2/30(1-x^2/56))
	SFTA	A,-1,A			;A右移一位即A除以2
	NEG	A
	MPYA	*AR2+			;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
	MAR	*AR2+
	RETD
	ADD	*AR4,16,B			;B=1-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))
	STH	B,*AR2				;cos(theta)
	RET
	.end
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -