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

📄 5-9.asm

📁 实现语音信号采集、压缩、编码、解码以及播放过程。
💻 ASM
字号:
			.title  	"CVSDdecoder.asm"
            	.mmregs  
STACK       .usect		"STACK",10h            
            	.global 	nit, Begin
    
DeltaMax		.set		1280h
DeltaMin		.set		65h
Beta    		.set		99h
Delta0CVSD   .set		10h
ORD			.set 		6h
ORD1		.set 		5h 
            	.data
TBL:        	.word		0,1,0

Coefa:		.word 	-3888933*32768/1000000 		
			.word 	6640744*32768/1000000 		
			.word 	-6086001*32768/1000000 		
			.word 	2986736*32768/1000000 		
			.word 	-627688*32768/1000000 		
			
Coefb:		.word		32850*32768/1000000 		
			.word 	-57239*32768/1000000 		
			.word 	36818*32768/1000000		
			.word 	36818*32768/1000000 		
			.word 	-57239*32768/1000000 		
			.word 	32850*32768/1000000 		
            	.bss		ThreeJudge,3
            	.bss 		Judge,1
            	.bss		InData,1
            	.bss		OutData,1
            	.bss		DeltaCVSD,1
            	.bss		ValPreCVSD,1
            	.bss 		FilterX,6
            	.bss 		CoefA,5
            	.bss 		FilterY,5
            	.bss 		CoefB,6            
            
            	.text
Init:        	STM		#ThreeJudge,AR5      
             	RPT		#3                   
             	MVPD   TBL,*AR5+            
             	STM		#CoefA,AR5
             	RPT		#5
             	MVPD	Coefa,*AR5+
             	STM		#CoefB,AR5
             	RPT		#6
             	MVPD	Coefb,*AR5+
             
             	STM		#ThreeJudge,AR5      
             	ST 		#20,*(DeltaCVSD)     
             	ST 		#0,*(ValPreCVSD)     
             	ST		#1,*(Judge)          
             	ST     	#1,*(InData)          	
            
Begin:       	LD 		*(InData),A          
			STL		A,*AR5+      
								AND		*(Judge),A   
			BC 		ONE,ANEQ
			
			 LD 		#0,A		
			 ADD	*AR5+,A
			 ADD	*AR5+,A
			 
			 BC		L1,ANEQ      
			 
			 STM 	#DeltaCVSD,AR6        
			 STM	#Beta,T               
			 MPY	AR6,A                 
			 B 		L2
			 
L1:			 LD 		#DeltaCVSD,A  
             	 STM	#Delta0CVSD,AR3;      		
             	ADD 	AR3,A                 		
             						
L2:          	STM		#DeltaMax,AR0         
			STL		A,AR4         
             	CMPR	LT,AR4                		
             	BC		L3,TC                 
             	LD 		AR0,A                 
             
             						
L3:          	STM		#DeltaMin,AR0         	
			STL		A,AR4          
             	CMPR	GT,AR4                		
             	BC		L4,TC                 	
             	LD 		AR0,A                 	

L4:          	STL 		A,*(DeltaCVSD)        	
             	STL 		A,AR4                 	
             	STM 	#ValPreCVSD,AR6       		
             	LD 		*(AR6),A              	
             	SUB 	AR4,A                 		
             	STL		A,*(ValPreCVSD)       	
ONE:         						
			 LD 		#1,A
			 AND	*AR5+,A
			 AND	*AR5+,A
			 
			 BC		L5,ANEQ       
			 
			 STM 	#DeltaCVSD,AR6        
			 STM	#Beta,T               
			 MPY	AR6,A                 
			 B 		L6
			 
L5:			 LD 		#DeltaCVSD,A  
             	 STM	#Delta0CVSD,AR3;      		
             	 ADD 	AR3,A                 		
             						
L6:          	 STM	#DeltaMax,AR0         		
			 STL		A,AR4         
             	 CMPR	LT,AR4                		
             
             	 BC		L7,TC                 
               LD 	AR0,A                 	 	
             						
L7:          	 STM	#DeltaMin,AR0         		
			 STL		A,AR4 
             	 CMPR	GT,AR4                	
             	 BC		L8,TC                 
             	 LD 		AR0,A                 
L8:			 STL 	A,*(DeltaCVSD)  
             	 STM 	#ValPreCVSD,AR4       	
             	 ADD 	*AR4,A                	
               STL		A,*(ValPreCVSD) 
									 
IIR:			 STM	#CoefB,AR2
			 STM	#FilterX,AR3			 			 
			 LD 		*(ValPreCVSD),A
             	 STL		A,*AR3      		   	
             	 MPY 	*AR2+,*AR3+,A                     
             	 RPT	#4
		      MAC	*AR2+,*AR3+,A		
		     STM		#CoefA,AR2
		     STM		#FilterY,AR3
		     RPT		#4
             	MAS		*AR2+,*AR3+,A		
             	STM		#FilterX+4,AR3
             	RPT		#3
		     DELAY	*AR3- 
		     STM		#FilterY+3,AR3
             	RPT		#2
              DELAY	*AR3-            
S:            STL		A,*(FilterY)          	
             .END

⌨️ 快捷键说明

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