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

📄 wpart1.asm

📁 文件为美军4800bps语音压缩编码标准在TI的DSP芯片TMS320C5X上的实时实现源代码。
💻 ASM
字号:
	.GLOBAL STATUS,ACCBUF,SINCOR,SIGNFLAG,HP10,LSPFLAG,LSP,FL,FR,FM,PXR
	;.DEF CWSR
	.BSS CODE_I,1
	.bss FRAME_LOOP,1
	.BSS ADDR_SIG,1
	.BSS TJ,2
	.BSS KBUF,1
	.BSS ALPHA,2
	.BSS BETA,2
	.BSS LPC0,1
	.BSS LPC,10
	.BSS TEMP,1
	.BSS CORFLAG,1
	.BSS STACK,2
	.BSS DIVISOR,1
	.BSS SIGNFLAG,1
	.bss LSPFLAG,1
	.bss ACCBUF,2
	.BSS ACCBBUF,2
	.BSS STATUS,2
	.BSS IBUF,1
	.BSS MINPQ,2
	;---------
	.BSS XF,1		;lsppc
	.BSS XX,1
	.BSS ADDR_LSP,1
	;-----------
	.BSS FL,1
	.BSS FR,1
	.BSS FM,1
	.BSS TFR,1
	;-----------
	.BSS PXR,1
	.BSS PXM,1
	.BSS PXL,1
	.BSS TPXR,1
	;------------
	.BSS QXL,1
	.BSS QXR,1
	.BSS QXM,1
	.BSS TQXR,1
	;------------
	.BSS TLSP_0,1		;LSP34
	.BSS TLSP_1,1
	.BSS TLSP_2,1
	.BSS TLSP_0_M,1
	.BSS TLSP_1_M,1
	;.BSS IBUF,1
	.BSS LOW,1
	.BSS LEVELS,1
	.BSS ERRORDN,1
	.BSS ERRORUP,1
	;--------
SIGNAL	.USECT "WARRAY",240
;LPC0	.USECT "WARRAY",1
;LPC	.USECT "WARRAY",10
LSP	.USECT "WARRAY",11
COR	.USECT "WARRAY",11*2
RC	.USECT "WARRAY",10
RCEXP	.USECT "WARRAY",10
TMP	.USECT "WARRAY",10
TEMPLPC .USECT "WARRAY",10
LSPPQ	.USECT "WARRAY",5
TEMPLSP	.USECT "WARRAY",10
FINDEX  .USECT "WARRAY",10
SUBLSP	.USECT "WARRAY",40
OLDLSP	.USECT "WARRAY",10
	;-----------------lsppc
LSPPC_A	 .USECT "WARRAY",6*2
LSPPC_A1 .USECT "WARRAY",6*2
LSPPC_A2 .USECT "WARRAY",6*2
LSPPC_B	 .USECT "WARRAY",6*2
LSPPC_B1 .USECT "WARRAY",6*2
LSPPC_B2 .USECT "WARRAY",6*2
LSPPC_P  .USECT "WARRAY",5
LSPPC_Q  .USECT "WARRAY",5
	;--------
	.GLOBAL MAXNCSIZE,MAXL,MAXCODE,MAXLL,MAXLP,MMIN,MMAX,MAXPA,MAXPD
	.GLOBAL MAXM2
MAXNCSIZE .set 512
MAXL      .set 60
MAXCODE   .set 2*(MAXNCSIZE)+MAXL
MAXLL     .set 240
MAXNO     .set 10
MAXLP     .set 60 ;/* bug, fixed - See MAXPA */
MAXNP     .set 3
MMIN      .set 20
MMAX      .set 147
MAXPD	  .set 256
MAXM2	  .set 20
MAXPA     .set MAXLP+MMAX+2+MAXM2

N128	.SET 128
NBP	.SET 10
NBQ	.SET 10
LSPEPS	.SET 1
FLEN	.SET 240
FLEN_1  .SET 239
HFLEN   .SET 120	;FLEN/2
HFLEN_1 .SET 120-1
P10	.SET 10
P10_1	.SET 9
P10_2	.SET P10-2
P10P	.SET P10+1
HP10	.SET P10/2
HP10_1	.SET HP10-1
DEBUG_FRAME .SET 9
	;-----------
	.data
LSPTAB	.COPY "LSPTAB.DAT"
BITS_1	.INT 7,15,15,15,15,7,7,7,7,7 ;//{3, 4, 4, 4, 4, 3, 3, 3, 3, 3};
TCOR	.COPY "C_10.DAT"
S0	.copy "sIG9.dat"		;240 signal values
HAMS	.COPY "HAMS.DAT"
POW 	.int 7f40h,7e80h,7dc2h,7d05h,7c49h,7b8eh,7ad4h,7a1ch,7964h,78aeh
COSCOR  .INT 0e216H,2078H,0fd54H,1eH,0ffffH
LSPCOS	.COPY "LSPCOS.DAT"	;cos(i* pi * 0.5*(11.0-2*j)/N) *0x8000u
LASTLSP	.INT 05d1h, 0ba3h, 01174h, 01745h, 01d17h
	.int 022e8h, 028b9h, 02e8ah, 0345ch, 03a2dh
INTANW	.INT 7000H, 5000H, 3000H, 1000H, 1000H, 3000H, 5000H, 7000H
LSPOLD  .INT 3d7H,666H,0b85H,10a4H,1852H,1d71H, 251fH,2a3dH,31ecH,3852H
	;//.int 571h,8f6h,0d9ah,1785h,01c00h,02000h,02b33h,02f33h,036e1h,03b5ch

	;----------
	.text
	CALL C50_INIT
	LDP #FRAME_LOOP
	LACC #S0
	SACL ADDR_SIG
	LACC #DEBUG_FRAME
	SACL FRAME_LOOP
GET_SIGNAL
	CALL GETS
	CALL HAMSIG
	call GETCOR
	   LDP #LPC0
	   LACC #2000H
	   SACL LPC0
	call DURBIN
	CALL BWEXP
	CALL PCTORC
	call PCLSP
	CALL LSP34
	CALL INTAN
	LACC #4
	SACL CODE_I
	LACC #SUBLSP
	SACL ADDR_LSP
SUBCODE
	  CALL LSPPC
	  LACC ADDR_LSP
	  ADD #10
	  SACL ADDR_LSP
	  LACC CODE_I
	  SUB #1
	  SACL CODE_I
	BCND SUBCODE,NEQ
	;------
	LACC ADDR_SIG
	ADD #FLEN
	SACL ADDR_SIG
	LACC FRAME_LOOP
	SUB #1
	SACL FRAME_LOOP
	BCND GET_SIGNAL,NEQ
;=================================
;=================================
;	.include "c50_init.asm"
;	.include "getcor.asm"
;	.include "longdiv.asm"
;	.INCLUDE "INTDIV.ASM"
;	.INCLUDE "AJUST.ASM"
;	.INCLUDE "DURBIN.ASM"
;	.INCLUDE "GETS.ASM"
;	.INCLUDE "HAMSIG.ASM"
;	.INCLUDE "BWEXP.ASM"
;	.INCLUDE "PCTORC.ASM"
	;---------------
;	.include "wcos1.asm"
;	.include "wcos.asm"
;	.include "wsin.asm"
;	.INCLUDE "INTACC.ASM"
;	.INCLUDE "PCLSP.ASM"
;	.INCLUDE "LSP34.ASM"
;	.INCLUDE "INTAN.ASM"
;	.include "lsppc.asm"
	;-------------------
	;.end

⌨️ 快捷键说明

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