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

📄 wcos1.asm

📁 文件为美军4800bps语音压缩编码标准在TI的DSP芯片TMS320C5X上的实时实现源代码。
💻 ASM
字号:
;COSCOR .INT 0e216H,2078H,0fd54H,1eH,0ffffH
;=================================
; ACC,ACCB,ACCBUF*2,BRCR,TREG0,TREG1=15 ,PUSH/POP used
;========================================================
WCOS1
	SACB
	;==============
	LACC #15
	SAMM TREG1
	LACB
	SACL ACCBUF
	SQRA ACCBUF	;TREG0=a
	PAC
	SATL		;ACC>>15
	BCND WCOS1_END1,EQ
	SACL ACCBUF	;ACCBUF=((long)ax0*ax0)>>15;	//1.15
	SAMM TREG0 	;TREG0=ax0*ax0>>15
	SACB		;ACCB=a*a
	;------
	LAMM AR0
	;PUSH
	SACL ACC_PUSH
	;------
	LACL #3
	SAMM BRCR
	LAR AR0,#COSCOR
	MAR *,AR0
	LACC #1,15	;ACC=0X8000u
	SBB		;acc=1-a*a
	SACB
	MPY *+
	PAC
	SATL
	ADDB
	SACB		;acc+=(accb*fccor[0]>>15);
;--------ax0=accb;
	RPTB WCOS1_1-1
	  MPY ACCBUF
	  PAC
	  SATL
	  SAMM TREG0	;pow(ax0,n)->TREG0, ACCBUF=(ax0*ax0)>>15
	  MPY *+
	  PAC
	  SATL
	  ADDB
	  SACB
WCOS1_1
	;POP
	LACC ACC_PUSH
	SAMM AR0
	;--------
	LACB
	RET
WCOS1_END1
	RETD
	 LACC #7FFFH

;=====================
;	accb=((long)ax0*ax0)>>15;		//1.15
;	if(accb==0) return 0x7fff;
;	acc=0x8000u-accb;		//acc=1-a*a
;	acc+=(accb*fccor[0]>>15);
;	ax0=accb;
;	for(i=1;i<5;i++)
;	 {   p32=(long)ax0*accb;
;	     p32>>=15; 	     	ax0=p32;
;	     p32=p32*fccor[i]; 	p32>>=15;
;	     acc+=p32;	 }
;	a=(float)acc;
;=====================

⌨️ 快捷键说明

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