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

📄 sinx.asm

📁 c5402的几个小程序dsp开发板。学校实验室的程序
💻 ASM
字号:
******************************************************
* 		用泰勒级数开展开式计算一个角度的正弦值 	     *
*sin(x)=x(1-x*x/2*3(1-x*x/4*5(1-x*x/6*7(1-x*x/8*9))))*
******************************************************
	.title	"sinx.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	sin_start
end:	B	end
sin_start:
	.def	sin_start
d_coeff	.usect	"coeff",4
	.data
table:	.word	01C7H		;c1=1/(8*9)
	.word	030BH			;c2=1/(6*7)
	.word	0666H			;c3=1/(4*5)
	.word	1556H			;c4=1/(2*3)
d_x	.usect	"sin_vars",1
d_squr_x .usect	"sin_vars",1
d_temp	.usect	"sin_vars",1
d_sinx	.usect	"sin_vars",1
c_1	.usect	"sin_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/72,T=x^2
	MPYA	A				;A=T*A=x^2(1-x^2/72)
	STH	A,*AR2				;(d_temp)=x^2(1-x^2/72)
	MASR	*AR2-,*AR3+,B,A	;A=1-x^2/42(1-x^2/72),T=x^2(1-x^2/72)
	MPYA	*AR2+			;B=x^2(1-x^2/42(1-x^2/72))
	ST	B,*AR2				;(d_temp)=x^2(1-x^2/42(1-x^2/72))
	||LD	*AR4,B			;B=1
	MASR	*AR2-,*AR3+,B,A	;A=1-x^2/20(1-x^2/42(1-x^2/72))
	MPYA	*AR2+			;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))
	ST	B,*AR2				;(d_temp)=B
	||LD	*AR4,B			;B=1
	MASR	*AR2-,*AR3+,B,A	;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))
	MPYA	d_x				;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))
	STH	B,d_sinx			;sin(theta)
	RET
	.end
		

⌨️ 快捷键说明

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