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

📄 5-8.asm

📁 实现语音信号采集、压缩、编码、解码以及播放过程。
💻 ASM
字号:
           	.title  		"CVSDcoder.asm"
            	.mmregs            
STACK       	.usect		"STACK",10h
            	.global 	Init, Begin
DeltaMax	.set		1280h
DeltaMin	.set		65h
Beta    	.set		99h
Delta0CVSD  	.set		10h
 
            	.data
TBL:        	.word		0,1,0
            	.bss		ThreeJudge,3
            	.bss		InData,1
            	.bss		OutData,1
            	.bss		DeltaCVSD,1
            	.bss		ValPreCVSD,1
            
            	.text
Init:        	STM		#ThreeJudge,AR5       
             	RPT		#3                    
             	MVPD   		TBL,*AR5+             
             	STM		#ThreeJudge,AR5       
             	ST 		#20,*(DeltaCVSD)      
             	ST 		#0,*(ValPreCVSD)      
             	ST     		#100,*(InData)        
            
Begin:       		LD 	*(InData),A           
             		STLM	A,AR1                	
			LD 	*(ValPreCVSD),A       
			STLM	A,AR0                	
			CMPR	LT,AR1                
			BC	DiffNeg,TC            
			 
			STM 	#1,*AR5+              
			ST 	#1,*(OutData)         
							
			 LD 	#1,A
			 AND	*AR5+,A
			 AND	*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)        	
             		STM 	#ValPreCVSD,AR4       	
             		ADD 	*AR4,A                	
             		STL	A,*(ValPreCVSD)       	
             		B 	ending                  
DiffNeg:	 	STM 	#0,*AR5+              	
			ST 	#0,*(OutData)         	
             						
             		LD 	#0,A
			ADD	*AR5+,A
			ADD	*AR5+,A
			BC	L5,ANEQ               			 
			LD 	#DeltaCVSD,A
             		STM	#Delta0CVSD,AR3;
             		ADD 	AR3,A          		
			B 	L6			
L5:			STM 	#DeltaCVSD,AR6
			STM	#Beta,T        
			MPY	AR6,A                   
L6:          		STM	#DeltaMax,AR0
			STL	A,AR4	
             		CMPR	LT,AR4           	    
              		BC	L7,TC          		
              		LD 	AR0,A             
L7:           		STM	#DeltaMin,AR0
              		CMPR	GT,AR4           	    
              		BC	L8,TC          		
              		LD 	AR0,A
L8:          		STL 	A,*(DeltaCVSD)
              		STL 	A,AR4
              		STM 	#ValPreCVSD,AR6
              		LD 	*(AR6),A
              		SUB 	AR4,A
              		STL	A,*(ValPreCVSD)
ending:	     		STL	A,*(ValPreCVSD)
              .END

⌨️ 快捷键说明

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