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

📄 c54-12.asm

📁 G723.1语音压缩解压在tms320c54系列上的实现代码,本人已在CCS上仿真通过. 包含全部源代码,主函数请自已写(本人的就不奉送了:
💻 ASM
字号:
;
;;;;;;;;;;;;;;;;;;Function;;;;;;;;;;;;;;;;;;  
;

	.mmregs

	.global        _c54_sshvr

_c54_sshvr:


   	.if    __far_mode
        FRAME 3;
	MVMM SP,AR0;  //参数2地址放入AR0
	FRAME -3
       	.else
        FRAME 1;
	MVMM SP,AR0;  //参数2地址放入AR0
	FRAME -1
        .endif

	FRAME -2
	MVMM SP,AR2
	FRAME -2
	MVMM SP,AR3
	
	LD *AR0,B;  //参数2放入B
	DST A,*AR3;  //参数1放*AR3
	BC littl,BLT;  //if B<0 到littl
	SUB #0x1f,0,B;  //B=B-31
	BC big31,BGT;  //if B >31到big31
	LD *AR0,B
	SUB #0x10,0,B;  //B = B-16
	BC big32,BGT;  //if 16 < B <=31到big32
	LD *AR0,B
	NEG B
	NOP
	STLM B,T
	NOP
	NORM A
	B result
big31:
	SFTA A,-16,A
	SFTA A,-15,A
	B result
big32:
	SFTA A,-16,A;  //先右移16位
	NEG B
	NOP
	STLM B,T;  //T = B
	NOP
	NORM A
	B result
littl:
	ABS B
	DST B,*AR2
	SUB #0x1f,0,B;  //B = |B|-31
	BC littl31,BGT;  //if |B| >31到littl31
	DLD *AR2,B
	NOP
	STLM B,T
	NOP
	NORM A
	BC littl32,AEQ
	SAT A
	B result
littl31:
	SFTA A,15,A
	SFTA A,8,A;
	SFTA A,8,A;  //if B < -31 则A左移31位后饱和处理
	BC littl34,ANEQ
littl32:
	DLD *AR3,A
	BC result,AEQ
	BC littl33,ALT
	STM #0x7FFF,AH
	STM #0xFFFF,AL	
	B result
littl33:
	STM #0x8000,AH
	STM #0x0000,AL
	B result
littl34:
	SAT A
result:
	FRAME 4
	.if __far_mode
        FRETD
	NOP
	NOP
	.else
        RETD
        NOP
        NOP
        NOP
	.endif
	.end
	




⌨️ 快捷键说明

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