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

📄 c54-9.asm

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

	.mmregs
             .global        _c54_sshvl
_c54_sshvl:

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

	FRAME -2
	MVMM SP,AR2
	FRAME -2
	MVMM SP,AR3
	
	DLD *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
	DLD *AR0,B;  // if 0 =< B <31,则A左移B中的位后饱和处理
	STLM B,T
	NOP
	NORM A;  //A = A << TS
	NOP
	SAT A
	B result
big31:
	SFTA A,15,A
	SFTA A,8,A
	SFTA A,8,A
	SAT A;  //A左移31位后进行饱和处理
	B result
big33:
	STM #0x8000,AH
	STM #0x0000,AL
	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
	SUB #0x10,0,B;  //B = |B| -16
	BC littl32,BGT;  //if 16<|B| <=31  goto littl32
	DLD *AR0,B
	NOP
	STLM B,T
	NOP
	NORM A
	B result
littl31:
	SFTA A,-15,A
	SFTA A,-16,A;  //if B < -31 则A右移31位
	B result
littl32:
	LD #0xf0,B
	STLM B,T
	NOP
	NORM A;  //PREVIOUS SHIFT right 16bit
	NOP
	DLD *AR0,B
	ADD #0x10,B
	STLM B,T;  //T = B
	NOP
	NORM 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 + -