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

📄 parity.dsp

📁 基于ADSP的G.729语音编解码程序
💻 DSP
字号:
/************************************************************************/
/* $$01/10/2000 checked parity module data variables and function       */
/* $$01/16/2001 modified and printed,Author: Jason.wang (zhigang wang)  */
/* $$01/16/2001 Email: wzg119@yeah.net,  BP: 86+02195950-161452         */
/* $$01/16/2001 This modlue is not optimized! should be test on Emulator*/
/************************************************************************/
.MODULE/SEG=App_PM        ParityCheck;

#include       "ld8a.inc"

/*************************************************************************
* Parity_pitch - compute parity bit for first 6 MSBs                     *
* $$01/10/2000  used in encoder and decoder                              *
* Calling Parameters					 					             *	
*         AR=index for which parity to compute                           *
* Return Values													         *
*         AR=parity bit (XOR of 6 MSB bits)                              *
* Altered Registers: CNTR,SR1,SR0,SI,AR,AF                               *	
* Computation Time : 23 cycles						 			         * 	
**************************************************************************/
.ENTRY         Parity_Pitch;

Parity_Pitch:  //CNTR=6;
			   SR=LSHIFT AR BY -1(LO);
			   AR=PASS H#0001;
			   CNTR=6;
			   DO parity_sum UNTIL CE;
			   SR=LSHIFT SR0 BY -1(LO);
			   AF=SR0 AND H#0001;
parity_sum:	   AR=AR+AF;
			   AR=AR AND H#0001;
			   RTS;
/*************************************************************************
* check_parity_pitch - check parity of index with transmitted parity     *
* $$01/10/2000  used in encoder and decoder                              *
* Calling Parameters					 					             *	
*      SI=index of parameter                                             *   
*      AY0=parity bit                                                    *
* Return Values													         *
*      AR=0 : no error, 1: error                                         *
* Altered Registers: CNTR,SR1,SR0,SI,AR,AF,AY0                           *	
* Computation Time : 24 cycles						 			         *	
*************************************************************************/
.ENTRY         Check_Parity_Pitch;

Check_Parity_Pitch:
//			   CNTR=6;
			   AR=PASS H#0001;
			   SR=LSHIFT SI BY -1(LO);
			   CNTR=6;
			   DO check_loop UNTIL CE;
			   SR=LSHIFT SR0 BY -1(LO);
			   AF=SR0 AND H#0001;
check_loop:	   AR=AR+AF;
			   AR=AR+AY0;
			   AR=AR AND H#0001;
			   RTS;
/**********************************************************************/
.ENDMOD;

⌨️ 快捷键说明

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