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

📄 wcos.asm

📁 文件为美军4800bps语音压缩编码标准在TI的DSP芯片TMS320C5X上的实时实现源代码。
💻 ASM
字号:
;=================================
; ACC ,ACCB ,SIGNFLAG,PUSH/POP used,
;=================================
WCOS
	;LDP #STATUS
	;SST #0,STATUS
	;SST #1,STATUS+1
	ABS
	SACB
	LACL #0
	SACL SIGNFLAG
	LACC #1,15	;ACC=0X8000
	SFL
	SFL             ;accb=4l*0x8000l;
	EXAR
WCOS_1
	SBB		;while(acc>=accb) acc-=accb; //>2*pi
	BCND WCOS_1,C
	ADDB
	EXAR
	SFR
	EXAR		;accb=2l*0x8000l;
	SBB
	;BCND WCOS_2,C
	BCND WCOS_2,GT;!!!!!!!!!!!!!!!
;========;if(acc>=(accb>>1)) {signflag=!signflag; acc=acc-(accb>>1);  }//>pi
	ADDB
	B WCOS_3
WCOS_2
	;PUSH
	SLAC ACC_PUSH
	LACC SIGNFLAG
	CMPL
	SACL SIGNFLAG
	;POP
	LLAC ACC_PUSH
WCOS_3
	EXAR
	SFR
	EXAR		;accb=0x8000l;
	SBB
	BCND WCOS_4,C
	;BCND WCOS_4,GEQ;!!!!!!!!!!!!!
;========;if(acc>0x8000u) {signflag=!signflag; acc=(accb>>1)-acc;  }//>pi/2
	ADDB
	B WCOS_5
WCOS_4
	;BCND $,LT;!!!!!!!!!!!!!!!!!!!!
	;ADDB
	;SBB
	SBB
	NEG
	;PUSH
	SLAC ACC_PUSH
	LACC SIGNFLAG
	CMPL
	SACL SIGNFLAG
	;POP
	LLAC ACC_PUSH
WCOS_5
;       if(acc==0x8000u) ta=0;
;	else if(acc==0) ta=0x7fff;
;	     else ta=wcos_1(acc);
	BCND WCOS_END1,EQ
	SBB
	BCND WCOS_END2,EQ
	ADDB
	CALL WCOS1
	;PUSH
	SACL ACC_PUSH
	LACC SIGNFLAG
	BCND WCOS_6,NEQ
	;POP
	LACC ACC_PUSH
	RET
WCOS_6
	;POP
	LACC ACC_PUSH
	NEG
	RET
WCOS_END1
	LACC SIGNFLAG
	BCND WCOS_END1_1,NEQ
	LACC #7FFFH
	RET
WCOS_END1_1
	LACC #8000H
	RET
WCOS_END2
	LACL #0
	RET
;==================================
;	ta=fabs(a);
;	acc=ta*0x8000l;
;	accb=4l*0x8000l;
;	while(acc>=accb) acc-=accb; //>2*pi
;	if(acc>=(accb>>1)) {signflag=!signflag; acc=acc-(accb>>1);  }//>pi
;	if(acc>0x8000u) {signflag=!signflag; acc=(accb>>1)-acc;  }//>pi/2
;	if(acc==0x8000u) ta=0;
;	else if(acc==0) ta=0x7fff;
;	     else ta=wcos_1(acc);
;	if(signflag) ta=-ta;
;	return ta;
;=================================

⌨️ 快捷键说明

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