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

📄 c6_5_1.asm

📁 dsp入门与实践一书的源代码
💻 ASM
字号:
   			.mmregs
   			.def 		main
   			.def 		daa_data       
   	
spsa0  		.set  38h  
spsd0  		.set  39h  
dxr10  		.set  23h  
drr10  		.set  21h  
	
spsa1  		.set  48h  
spsd1  		.set  49h  
dxr11  		.set  43h  
drr11  		.set  41h  

spsa2   		.set  34h  
spsd2   		.set  35h  
drr22   		.set  30h  
drr12  		.set  31h   
dxr22  		.set  32h   
dxr12  		.set  33h   

spcr1  	 	.set 	00h	
spcr2  	 	.set 	01h
rcr1   	 	.set 	02h
rcr2   		.set 	03h
xcr1   	 	.set 	04h
xcr2   	 	.set 	05h
srgr1  		.set 	06h
srgr2  		.set 	07h
mcr1  	 	.set 	08h
mcr2   		.set 	09h
rcera   		.set 	0ah
rcerb   		.set 	0bh
xcera   		.set 	0ch
xcerb 		.set 	0dh
pcr    		.set 	0eh 
   
k_iptr  		.set 010111000b<<07	
k_temp  		.set 1111111b
data_dp   	.usect "filter_vars",0 	   	
   
main:
   nop          
   stm  		#0,clkmd		
   nop
   nop
change:
   ldm  		clkmd,a
   nop
   nop
   and  		#01,a
   nop
   nop
   bc   		change,aneq
   stm  		#0011011000001111b,clkmd 	
                	
   nop
   nop
   rpt    		#200				
   nop
   nop   
   stm  		4000h,sp			
   ld   		#0h,dp				

   ldm     	pmst,a					
   and     	#k_temp,a
   or      	#k_iptr,a
   stl     	a,ar6
   mvdm    	ar6,pmst
   nop
   nop
   stm    	#2000h,ar3						
   stm    	#1ffeh,ar4						
   stm    	#1fffh,ar5						
   ld    		#80h,b						
   nop
   nop
     
   st  		 #10h,*ar4
   st  		 #7ff0h,*ar5
   		
   stm    	 #0ffffh,tcr   			
   stm    	 #07h,prd      			
   stm    	 #08e0h,tcr			

   ssbx   	 intm				
   ssbx   	 sxm				
   st     	 #2491h,swwsr			

   nop
   nop
   nop
   ssbx   	 xf				
   nop	
   nop	
   nop
   nop
   
mcbsp0_init:						
   rsbx    	cpl					
  ; …… 
  ; ……
  ; ……
   nop

mcbsp2_init:				
   nop
   stm     	spcr1,spsa2
   nop
   stm     	06h,spsd2
   nop
   stm     	spcr2,spsa2
   nop
   stm     	200h,spsd2
   nop
   stm     	pcr,spsa2
   nop
   stm     	0eh,spsd2 
   nop
   stm     	rcr1,spsa2
   nop
   stm     	40h,spsd2
   nop
   stm     	rcr2,spsa2
   nop
   stm     	4h,spsd2
   nop
   stm     	xcr1,spsa2
   nop
   stm     	40h,spsd2
   nop
   stm     	xcr2,spsa2
   nop
   stm     	4h,spsd2
   nop   
   rpt     	#50
   nop   
   stm     	spcr1,spsa2
   nop
   stm     	07h,spsd2
   nop
   stm     	spcr2,spsa2
   nop
   stm     	201h,spsd2
   nop
   rpt     	#50			
   nop
   nop

   stm     	0ffffh,ifr		
   nop        
   stm     	0h,imr                  
   orm     	40h,imr			
   nop
   nop 
   ssbx   	intm                	
   nop
   
   stm     	0f010h,bscr         	
   nop
   rpt     	#60000			
   nop
   rpt     	#60000
   nop
   rpt     	#60000
   nop
   nop
   nop   
   rsbx   	intm         			

loop: 						
   nop
   nop   
   nop
   b 		loop

daa_data:   					
   ldm   		drr12,a      		
   nop
   nop 
   nop
   nop 
   nop
   nop       
   stl    		a,*ar3+
   stl    		a,*ar6
   nop
   nop
   sub    	#1,b
   nop
   
   ld     	*ar4,a 
   nop
   
   ld     	*ar4,a 				
   xor    	#2052h,a
   bc     	init,aneq 			

   ld     	*ar6,a				
   and    	#05h,a
   mvdk   	*ar5,dxr12   
   bc     	pre_rreg5,aeq  			
   
   ld     	*ar6,a        			
   and    	#01h,a
   bc     	read_data1,aneq  		
   mvdk   	*ar5,dxr12
   b      	pre_wreg5       		

init:
   mvdk   	*ar5,dxr12			
   ld     	*ar4,a
   xor    	#0010h,a
   bc     	pre_wreg1,aeq  			
   ld     	*ar4,a
   xor    	#0011h,a
   bc     	wreg1,aeq 			
   
   ld     	*ar4,a
   xor    	#2053h,a
   bc     	save_data2,aeq 
   
   ld     	*ar4,a
   xor    	#0090h,a
   bc     	pre_wreg9,aeq  			
   ld     	*ar4,a
   xor    	#0091h,a
   bc     	wreg9,aeq 			
    
   ld     	*ar4,a
   xor    	#0060h,a
   bc     	pre_wreg6,aeq  			
   ld     	*ar4,a
   xor    	#0061h,a
   bc     	wreg6,aeq 			
  
   ld     	*ar4,a
   xor    	#00d0h,a
   bc     	pre_wreg13,aeq  		
   ld     	*ar4,a
   xor    	#00d1h,a
   bc     	wreg13,aeq  			
     
   ld     	*ar4,a
   xor    	#00f0h,a
   bc     	pre_wreg15,aeq  		
   ld     	*ar4,a
   xor    	#00f1h,a
   bc     	wreg15,aeq			
   
   ld     	*ar4,a
   xor    	#0100h,a
   bc     	pre_wreg16,aeq  		
   ld     	*ar4,a
   xor   		#0101h,a
   bc    		wreg16,aeq  		
   		
   ld   		*ar4,a
   xor  	  	#0120h,a
   bc   	  	pre_wreg18,aeq  	
   ld     	*ar4,a
   xor    	#0121h,a
   bc     	wreg18,aeq			
   
   ld     	*ar4,a
   xor    	#20F0h,a
   bc     	pre_wreg5_0,aeq  		
   ld     	*ar4,a
   xor    	#20F1h,a
   bc     	wreg5_0,aeq			

   ld     	*ar4,a 
   xor    	#2050h,a
   bc     	pre_rreg5,aeq 			

   ld     	*ar4,a 
   xor    	#2051h,a
   bc     	rreg5,aeq			

   ld     	*ar4,a 
   xor    	#0051h,a
   bc     	wreg5,aeq
         
   b     		save_data1

pre_wreg1:
   st   		#0001h,*ar5
   st   		#0011h,*ar4
   b    		save_data1    
wreg1:
   st   		#0180h,*ar5  			
   st   		#0090h,*ar4
   b    		save_data1
   
pre_wreg9:
   rpt   		#60000
   nop
   rpt   		#60000
   nop
   st   		#0001h,*ar5
   st   		#0091h,*ar4
   b    		save_data1    
wreg9:
   st   		#0900h,*ar5  			
   st   		#0060h,*ar4
   b    		save_data1

pre_wreg6:
   nop
   rpt   		#60000
   nop
   rpt   		#60000
   nop    
   rpt   		#60000
   nop   
   st   		#0001h,*ar5
   st   		#0061h,*ar4
   b    		save_data1    
wreg6:
   st   		#0600h,*ar5  			
   st   		#00d0h,*ar4
   b    		save_data1
pre_wreg13:
   rpt   		#60000
   nop
   rpt   		#60000
   nop
   st   		#0001h,*ar5
   st   		#00d1h,*ar4
   b    		save_data1    
wreg13:
   st   		#0d00h,*ar5  			
   st   		#00f0h,*ar4
   b    		save_data1
pre_wreg15:
   st   		#0001h,*ar5
   st   		#00f1h,*ar4
   b    		save_data1    
wreg15:
   st   		#0f44h,*ar5  			
   st   		#0100h,*ar4
   b    		save_data1     
pre_wreg16:
   st   		#0001h,*ar5
   st   		#0101h,*ar4
   b    		save_data1    
wreg16:
   st   		#1004h,*ar5  			
   st   		#0120h,*ar4
   b    		save_data1   
pre_wreg18:
   st   		#0001h,*ar5
   st   		#0121h,*ar4
   b    		save_data1    
wreg18:
   st   		#1200h,*ar5  			
   st   		#20F0h,*ar4
   b    		save_data1     

pre_wreg5_0:
   st   		#0001h,*ar5
   st   		#20F1h,*ar4
   b    		save_data1    
wreg5_0:
   st   		#0500h,*ar5  			
   st   		#2050h,*ar4
   b    		save_data1     
   
pre_rreg5:
   st   		#07fffh,*ar5
   st   		#2051h,*ar4
   b    		save_data1
rreg5:
   st   		#2500h,*ar5  			
   st   		#2052h,*ar4
   b   		save_data1

pre_wreg5:
   st   		#0ff1h,*ar5
   st   		#0051h,*ar4
   b    		save_data1    
wreg5:
   st   		#0501h,*ar5  			
   st   		#02053h,*ar4
   b    		save_data1  

save_data2:
   st     	#0000h,*ar5
save_data1:   						
   bc     	save_data,bgt			
   nop
   stm    	#2000h,ar3
   nop
   ld    		#1800h,b			
   nop
save_data:
   nop
   rete
   nop
   nop
   nop 
   nop

read_data1:   
    b 		pre_rreg5
   rete            

⌨️ 快捷键说明

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